<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Jeremie Bresson</title>
    <link>https://jmini.github.io</link>
    <atom:link href="https://jmini.github.io/feed.xml" rel="self" type="application/rss+xml" />
    <description>Jeremie Bresson personal Blog</description>
    <language>en-us</language>
    <pubDate>Wed, 9 Feb 2022 21:06:54 +0100</pubDate>
    <lastBuildDate>Wed, 9 Feb 2022 21:06:54 +0100</lastBuildDate>

    
    <item>
      <title>SimpleConfigurator 'bundles.info' file</title>
      <link>https://jmini.github.io/blog/2022/2022-02-09_bundlesinfo.html</link>
      <pubDate>Wed, 9 Feb 2022 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2022/2022-02-09_bundlesinfo.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Any Eclipse RCP Client applications is a set of OSGi bundles started inside an Equinox framework.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The list of bundles that are started and the order is often controlled by the &lt;code&gt;SimpleConfigurator&lt;/code&gt; and its &lt;code&gt;bundles.info&lt;/code&gt; file.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The &lt;code&gt;bundles.info&lt;/code&gt; file is located inside the &lt;code&gt;configuration&lt;/code&gt; folder of the Eclipse RCP application.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;For Mac OS, it is located inside the &lt;code&gt;*.app&lt;/code&gt; file (use the context menu &quot;Show Package Contents&quot; to open it):&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-txt&quot; data-lang=&quot;txt&quot;&gt;MyApp.app
&amp;#x2514;&amp;#x2500;&amp;#x2500; Contents
    &amp;#x2514;&amp;#x2500;&amp;#x2500; Eclipse
        &amp;#x2514;&amp;#x2500;&amp;#x2500; configuration
            &amp;#x2514;&amp;#x2500;&amp;#x2500; org.eclipse.equinox.simpleconfigurator
                &amp;#x2514;&amp;#x2500;&amp;#x2500; bundles.info&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;For windows or linux it is next to the &lt;code&gt;*.exe&lt;/code&gt; file or bin file:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-txt&quot; data-lang=&quot;txt&quot;&gt;MyApp
&amp;#x251c;&amp;#x2500;&amp;#x2500; myapp.exe
&amp;#x2514;&amp;#x2500;&amp;#x2500; configuration
    &amp;#x2514;&amp;#x2500;&amp;#x2500; org.eclipse.equinox.simpleconfigurator
        &amp;#x2514;&amp;#x2500;&amp;#x2500; bundles.info&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The file describes the list of bundles that will be started. It is more or less a CSV file, that looks like this:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-csv&quot; data-lang=&quot;csv&quot;&gt;#encoding=UTF-8
#version=1
org.eclipse.equinox.app,1.5.100.v20210212-1143,plugins/org.eclipse.equinox.app_1.5.100.v20210212-1143.jar,4,false
org.eclipse.equinox.common,3.14.100.v20210212-1143,plugins/org.eclipse.equinox.common_3.14.100.v20210212-1143.jar,2,true&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;For each bundle, the &lt;code&gt;bundles.info&lt;/code&gt; file contains one line with this information:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;symbolic name&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;version&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;location&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;start level&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;marked as started&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The bundles are alphabetically sorted inside a &lt;code&gt;bundles.info&lt;/code&gt; file. This make the comparison between two files easy.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The code that is parsing those files can be found in &lt;a href=&quot;https://git.eclipse.org/c/equinox/rt.equinox.p2.git/tree/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java&quot;&gt;SimpleConfiguratorUtils.java&lt;/a&gt;:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;&lt;code&gt;SimpleConfiguratorUtils#readConfiguration(InputStream, URI)&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;And for one line: &lt;code&gt;SimpleConfiguratorUtils#parseBundleInfoLine(String, URI)&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;This can be useful to investigate Eclipse RCP startup issues.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>OSGi and javax.inject</title>
      <link>https://jmini.github.io/blog/2021/2021-01-27_osgi-java-inject.html</link>
      <pubDate>Wed, 27 Jan 2021 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2021/2021-01-27_osgi-java-inject.html</guid>
      <description>
      &lt;div id=&quot;preamble&quot;&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;An OSGi bundle that exports the &lt;code&gt;javax.inject&lt;/code&gt; package.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Since a couple of years, the Eclipse platform jars are &lt;a href=&quot;https://jmini.github.io/blog/2017/2017-01-10_use-eclipse-jdt-in-java-app.html&quot;&gt;published on maven central&lt;/a&gt; with metadata that allows the consumption in a traditional maven project (no &lt;a href=&quot;https://projects.eclipse.org/projects/technology.tycho&quot;&gt;Eclipse Tycho&lt;/a&gt; required).&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;This article is my feedback after having experimented with PDE (the &lt;a href=&quot;https://www.eclipse.org/pde/&quot;&gt;Plug-in Development Environment&lt;/a&gt; project).&lt;/p&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect1&quot;&gt; 
 &lt;h2 id=&quot;the_problem&quot;&gt;The problem&lt;/h2&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;The goal is to compile and execute code that requires this OSGi bundle from maven-central:&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;listingblock&quot;&gt; 
   &lt;div class=&quot;content&quot;&gt; 
    &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.eclipse.pde&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;org.eclipse.pde.core&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;3.13.200&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;I am using a regular maven project (with the bnd plugins to manage the OSGi related tasks). I do not have Eclipse Tycho, so maven do not have access to any P2 Update Site.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Amongst all dependencies of PDE, there is &lt;code&gt;org.eclipse.e4.core.contexts&lt;/code&gt; and &lt;code&gt;org.eclipse.e4.core.services&lt;/code&gt;. Those two bundles requires:&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;listingblock&quot;&gt; 
   &lt;div class=&quot;content&quot;&gt; 
    &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-MF&quot; data-lang=&quot;MF&quot;&gt;Import-Package: javax.inject;version=&quot;1.0.0&quot;,&lt;/code&gt;&lt;/pre&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Source: &lt;a href=&quot;https://github.com/eclipse/eclipse.platform.runtime/blob/9541c1ee0b599c4b7666fca6fdbfdba3eb3d1979/bundles/org.eclipse.e4.core.contexts/META-INF/MANIFEST.MF#L11&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://github.com/eclipse/eclipse.platform.runtime/blob/9541c1ee0b599c4b7666fca6fdbfdba3eb3d1979/bundles/org.eclipse.e4.core.services/META-INF/MANIFEST.MF#L11&quot;&gt;here&lt;/a&gt;.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;So we need a bundle exporting this package, otherwise the requirements are not fulfilled and I get this error:&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;listingblock&quot;&gt; 
   &lt;div class=&quot;content&quot;&gt; 
    &lt;pre&gt;[ERROR] Resolution failed. Capabilities satisfying the following requirements could not be found:
    [&amp;lt;&amp;lt;INITIAL&amp;gt;&amp;gt;]
      &amp;#x21d2; osgi.identity: (osgi.identity=org.eclipse.pde.core)
          &amp;#x21d2; [org.eclipse.pde.core version=3.13.200.v20191202-2135]
              &amp;#x21d2; osgi.wiring.bundle: (&amp;amp;(osgi.wiring.bundle=org.eclipse.e4.core.services)(bundle-version&amp;gt;=2.0.0)(!(bundle-version&amp;gt;=3.0.0)))
                  &amp;#x21d2; [org.eclipse.e4.core.services version=2.2.100.v20191122-2104]
                      &amp;#x21d2; osgi.wiring.package: (&amp;amp;(osgi.wiring.package=javax.inject)(version&amp;gt;=1.0.0))
    [org.eclipse.e4.core.contexts version=1.8.300.v20191017-1404]
      &amp;#x21d2; osgi.wiring.package: (&amp;amp;(osgi.wiring.package=javax.inject)(version&amp;gt;=1.0.0))&lt;/pre&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect1&quot;&gt; 
 &lt;h2 id=&quot;in_the_p2_world&quot;&gt;In the P2 world&lt;/h2&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;The bundle &lt;code&gt;javax.inject&lt;/code&gt; version &lt;code&gt;1.0.0&lt;/code&gt; is available in the &lt;a href=&quot;https://download.eclipse.org/tools/orbit/downloads/&quot;&gt;Eclipse Orbit&lt;/a&gt; repositories.&lt;/p&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect1&quot;&gt; 
 &lt;h2 id=&quot;in_the_maven_world&quot;&gt;In the maven world&lt;/h2&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;sect2&quot;&gt; 
   &lt;h3 id=&quot;the_official_dependency&quot;&gt;The official dependency&lt;/h3&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;The dependency used by most of the other libraries:&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;listingblock&quot;&gt; 
    &lt;div class=&quot;content&quot;&gt; 
     &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;javax.inject&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;javax.inject&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;This library does not contain any OSGi metadata in the published &lt;code&gt;MANIFEST.MF&lt;/code&gt;.&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;See the corresponding &lt;a href=&quot;https://github.com/javax-inject/javax-inject/issues/25&quot;&gt;open issue&lt;/a&gt;.&lt;/p&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;sect2&quot;&gt; 
   &lt;h3 id=&quot;tom_schindl_s_solution&quot;&gt;Tom Schindl&amp;#x2019;s solution&lt;/h3&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;The jar from Eclipse Orbit is available at:&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;listingblock&quot;&gt; 
    &lt;div class=&quot;content&quot;&gt; 
     &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;at.bestsolution.efxclipse.eclipse&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;javax.inject&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;But this is not on maven central. You will need to add following repository to your &lt;code&gt;pom.xml&lt;/code&gt;:&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;listingblock&quot;&gt; 
    &lt;div class=&quot;content&quot;&gt; 
     &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;repositories&amp;gt;
  &amp;lt;repository&amp;gt;
    &amp;lt;id&amp;gt;bestsolution&amp;lt;/id&amp;gt;
    &amp;lt;url&amp;gt;http://maven.bestsolution.at/efxclipse-releases/&amp;lt;/url&amp;gt;
  &amp;lt;/repository&amp;gt;
&amp;lt;/repositories&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;sect2&quot;&gt; 
   &lt;h3 id=&quot;on_maven_central&quot;&gt;On maven central&lt;/h3&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;This &lt;a href=&quot;https://stackoverflow.com/questions/22874910/weld-osgi-apache-felix-cant-find-packages&quot;&gt;question on stackoverflow&lt;/a&gt; gives some inputs and suggests:&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;From the &lt;a href=&quot;https://servicemix.apache.org/&quot;&gt;Apache ServiceMix&lt;/a&gt; project:&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;listingblock&quot;&gt; 
    &lt;div class=&quot;content&quot;&gt; 
     &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.apache.servicemix.bundles&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;org.apache.servicemix.bundles.javax-inject&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1_3&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;&lt;a href=&quot;https://search.maven.org/artifact/org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject&quot;&gt;page on maven search&lt;/a&gt;&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;From the &lt;a href=&quot;https://glassfish.org/&quot;&gt;GlassFish&lt;/a&gt; project.&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;listingblock&quot;&gt; 
    &lt;div class=&quot;content&quot;&gt; 
     &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.glassfish.hk2.external&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;javax.inject&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;2.5.0-b62&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;&lt;a href=&quot;https://search.maven.org/artifact/org.glassfish.hk2.external/javax.inject&quot;&gt;page on maven search&lt;/a&gt;&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;After analyzing other candidates in list where &lt;code&gt;artifactId == &quot;javax.inject&quot;&lt;/code&gt;, there is also this one from the &lt;a href=&quot;https://www.lucee.org/&quot;&gt;Lucee&lt;/a&gt; project:&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;listingblock&quot;&gt; 
    &lt;div class=&quot;content&quot;&gt; 
     &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.lucee&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;javax.inject&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;&lt;a href=&quot;https://search.maven.org/artifact/org.lucee/javax.inject&quot;&gt;page on maven search&lt;/a&gt;&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;And on twitter &lt;a href=&quot;https://twitter.com/rotty3000/status/1352746312584847360&quot;&gt;Raymond Aug&amp;eacute;&lt;/a&gt; suggested the &lt;a href=&quot;https://geronimo.apache.org/&quot;&gt;Apache geronimo&lt;/a&gt; project.&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;listingblock&quot;&gt; 
    &lt;div class=&quot;content&quot;&gt; 
     &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.apache.geronimo.specs&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;geronimo-atinject_1.0_spec&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1.2&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;&lt;a href=&quot;https://search.maven.org/artifact/org.apache.geronimo.specs/geronimo-atinject_1.0_spec&quot;&gt;page on maven search&lt;/a&gt;&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;paragraph&quot;&gt; 
    &lt;p&gt;Make your choice.&lt;/p&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>JDT without Eclipse</title>
      <link>https://jmini.github.io/blog/2020/2020-01-17_jdt-without-eclipse.html</link>
      <pubDate>Fri, 17 Jan 2020 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2020/2020-01-17_jdt-without-eclipse.html</guid>
      <description>
      &lt;div id=&quot;preamble&quot;&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;The &lt;a href=&quot;https://www.eclipse.org/jdt/&quot;&gt;JDT&lt;/a&gt; (Java Development Tools) is an important part of Eclipse IDE but it can also be used without Eclipse.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;For example the Spring Tools 4, which is nowadays a cross-platform tool (Visual Studio Code, Eclipse IDE, &amp;#x2026;), is highly using the JDT behind the scene. If you would like to know more, I recommend you this podcast episode: &lt;a href=&quot;https://soundcloud.com/a-bootiful-podcast/spring-tools-lead-martin-lippert&quot;&gt;Spring Tools lead Martin Lippert&lt;/a&gt;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;A second known example is the Java Formatter that is also part of the JDT. Since a long time there are maven and gradle plugins that performs the same formatting as Eclipse IDE but as part of the build (often with the possibly to break the build when the code is wrongly formatted).&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Reusing the JDT has been made easier since 2017 when it was decided to publish each release and its dependencies on maven central (with following &lt;code&gt;groupId&lt;/code&gt;: &lt;code&gt;org.eclipse.jdt&lt;/code&gt;, &lt;code&gt;org.eclipse.platform&lt;/code&gt;). Stephan Herrmann did a lot of work to achieve this goal. I blogged about this: &lt;a href=&quot;https://jmini.github.io/blog/2017/2017-01-10_use-eclipse-jdt-in-java-app.html&quot;&gt;Use the Eclipse Java Development Tools in a Java SE application&lt;/a&gt; and I have pushed a simple example the Java Formatter is used in a simple &lt;code&gt;main(String[])&lt;/code&gt; method built by a classic minimal Maven project: &lt;a href=&quot;https://github.com/jmini/jdt-experiments/tree/master/java-formatter&quot;&gt;java-formatter&lt;/a&gt;.&lt;/p&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect1&quot;&gt; 
 &lt;h2 id=&quot;workspace_or_not&quot;&gt;Workspace or not?&lt;/h2&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;When using the JDT in an headless application, two cases needs to be distinguished:&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;olist arabic&quot;&gt; 
   &lt;ol class=&quot;arabic&quot;&gt; 
    &lt;li&gt; &lt;p&gt;Some features (the parser, the formatter&amp;#x2026;) can be used in a simple Java main method.&lt;/p&gt; &lt;/li&gt; 
    &lt;li&gt; &lt;p&gt;Other features (search index, AST rewriter&amp;#x2026;) require a workspace. This imply that the code run inside an OSGi runtime.&lt;/p&gt; &lt;/li&gt; 
   &lt;/ol&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;To illustrate this aspect, I took some of the examples provided by the site &lt;code&gt;www.programcreek.com&lt;/code&gt; in the blog post series &lt;a href=&quot;https://www.programcreek.com/2011/01/best-java-development-tooling-jdt-and-astparser-tutorials/&quot;&gt;Eclipse JDT Tutorials&lt;/a&gt; and I adapted them so that each code snippet can be executed inside a JUnit test. This is the &lt;a href=&quot;https://jmini.github.io/jdt-experiments/#programcreek-examples&quot;&gt;Programcreek examples&lt;/a&gt; project.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;I have split the unit-tests into two projects:&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;ulist&quot;&gt; 
   &lt;ul&gt; 
    &lt;li&gt; &lt;p&gt;&lt;code&gt;programcreek-standalone&lt;/code&gt; for the one that do not require OSGi. The maven project is really simple (using the default convention everywhere)&lt;/p&gt; &lt;/li&gt; 
    &lt;li&gt; &lt;p&gt;&lt;code&gt;programcreek-osgi&lt;/code&gt; for the one that must run inside an OSGi runtime. The &lt;a href=&quot;https://github.com/bndtools/bnd/tree/master/maven/bnd-maven-plugin&quot;&gt;bnd maven plugins&lt;/a&gt; are configured in the &lt;code&gt;pom.xml&lt;/code&gt; to take care of the OSGi stuff.&lt;/p&gt; &lt;/li&gt; 
   &lt;/ul&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;If you run the test with Maven, it will work out-of-the box.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;If you would like to run them inside an IDE, you should use one that starts OSGi when executing the tests (in the same way the maven build is doing it). To get a bnd aware IDE, you can use &lt;a href=&quot;https://www.eclipse.org/downloads/packages/release/2019-12/r/eclipse-ide-java-developers&quot;&gt;Eclipse IDE for Java Developers&lt;/a&gt; with the additional plugin &lt;a href=&quot;https://bndtools.org/&quot;&gt;Bndtools&lt;/a&gt; installed, but there are other possibilities.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Source code can be found on GitHub: &lt;a href=&quot;https://github.com/jmini/jdt-experiments/tree/master/programcreek-examples&quot;&gt;programcreek-examples&lt;/a&gt;&lt;/p&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Building and running Equinox with maven without Tycho</title>
      <link>https://jmini.github.io/blog/2020/2020-01-13_equinox-without-tycho.html</link>
      <pubDate>Mon, 13 Jan 2020 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2020/2020-01-13_equinox-without-tycho.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Eclipse Tycho is a great way to let maven build PDE based projects. But the Plug-in Development Environment (PDE) model is not the only way to work with OSGi.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;In particular, since 2 or 3 years the Eclipse Platform jars (including the Equinox jars) are regularly published on Maven Central (check the artifacts having &lt;code&gt;org.eclipse.platform&lt;/code&gt; as &lt;code&gt;groupId&lt;/code&gt;).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I was looking for an alternative to P2 and to the target-platform mechanism.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2020/2020-01-13_bnd-bndtools.png&quot; alt=&quot;bnd and bndtools logo&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Bnd and Bndtools are always mentioned as potential alternative to PDE (I attended several talks discussing this at EclipseCon 2018: &lt;a href=&quot;https://www.eclipsecon.org/europe2018/sessions/migrating-pde-bndtools-practice&quot;&gt;Migrating from PDE to Bndtools in Practice&lt;/a&gt;, &lt;a href=&quot;https://www.eclipsecon.org/europe2018/sessions/zero-professional-osgi-project-minutes&quot;&gt;From Zero to a Professional OSGi Project in Minutes&lt;/a&gt;). So I decided to explore this path.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;This StackOverflow question catches my attention: &lt;a href=&quot;https://stackoverflow.com/questions/52776222/how-to-start-with-osgi&quot;&gt;How to start with OSGi&lt;/a&gt;. I had a close look at the answer provided by Peter Kriens (the founder of the Bnd and Bndtools projects), where he discusses the different possible setup:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;Maven Only&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;Gradle Only&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;Eclipse, M2E, Maven, and Bndtools&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;Eclipse, Bndtools, Gradle&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Even in the &quot;Maven Only&quot; or &quot;Gradle Only&quot; setups, the proposed solution relies on plugins using bnd under the hood.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2020/2020-01-13_how-to-start.png&quot; alt=&quot;How to start?&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;My project is quite simple, the dependencies are already on maven central. I will not have a complex use-case with multiple versions of the same library or with platform dependent artifacts. So fetching the dependencies with maven is sufficient.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I decided to try the &quot;Maven Only&quot; model.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2020/2020-01-13_effective-osgi-logo.png&quot; alt=&quot;How to start?&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I was not sure to understand how to use the different &lt;a href=&quot;https://github.com/bndtools/bnd/tree/master/maven/bnd-maven-plugin&quot;&gt;bnd maven plugins&lt;/a&gt;: &lt;code&gt;bnd-maven-plugin&lt;/code&gt;, &lt;code&gt;bnd-indexer-maven-plugin&lt;/code&gt;, &lt;code&gt;bnd-testing-maven-plugin&lt;/code&gt;, &lt;code&gt;bnd-export-maven-plugin&lt;/code&gt; &amp;#x2026;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Luckily I found the slides of the &lt;a href=&quot;https://www.slideshare.net/mfrancis/bndtools-and-maven-a-brave-new-world-n-bartlett-t-ward&quot;&gt;Bndtools and Maven: A Brave New World&lt;/a&gt; workshop (given at EclipseCon 2017) and the corresponding git repository: &lt;a href=&quot;https://github.com/paremus/osgi-community-event2017&quot;&gt;osgi-community-event2017&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The corresponding &lt;a href=&quot;https://github.com/effectiveosgi/maven-archetypes&quot;&gt;effective-osgi maven archetypes&lt;/a&gt; used during the workshop are still working well. I could follow the step-by-step guide (in the readme of the maven archetypes project). I got everything working as described and I could find enough explanations about the generated projects. I think I understood what I did and this is very important when you start.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;After some cleanup and a switch from Apache Felix to Eclipse Equinox, I got my running setup and I answered my question: &quot;&lt;em&gt;How to start with OSGi without PDE and Tycho&lt;/em&gt;&quot;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The corresponding code is in this folder: &lt;a href=&quot;https://github.com/jmini/bnd-experiments/tree/master/effectiveosgi-example&quot;&gt;effectiveosgi-example&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Edit an OpenAPI specification in Eclipse IDE</title>
      <link>https://jmini.github.io/blog/2018/2018-06-08_edit-openapi-files-in-eclipse.html</link>
      <pubDate>Fri, 8 Jun 2018 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">blog/2018/2018-06-08_edit-openapi-files-in-eclipse.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I am working a lot on the &lt;a href=&quot;https://github.com/OpenAPITools/openapi-generator&quot;&gt;OpenAPI Generator&lt;/a&gt; project these days. This means that I need to edit OpenAPI Specification files a lot. A specification file is a &lt;code&gt;*.yaml&lt;/code&gt; file that describes a REST API.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;In Eclipse IDE I have installed the &lt;a href=&quot;https://github.com/RepreZen/KaiZen-OpenApi-Editor&quot;&gt;KaiZen OpenAPI Editor&lt;/a&gt; plugin. This is an Xtext editor that provides everything that you need to be efficient with your OpenAPI specification: outline, code completion, jumps for references, renaming support&amp;#x2026;&amp;#x200b;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2018/2018-06-08_kaizen-openapi-editor.png&quot; alt=&quot;KaiZen OpenAPI Editor for Eclipse IDE&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;It can be installed from the &lt;a href=&quot;https://marketplace.eclipse.org/content/kaizen-openapi-editor&quot;&gt;Eclipse Marketplace&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you use the Eclipse Installer (also called Oomph), you can add this xml snippet to your &lt;code&gt;installation.setup&lt;/code&gt; file:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 1. Oomph snippet to install the KaiZen OpenAPI Editor
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;setup.p2:P2Task
    xmi:version=&quot;2.0&quot;
    xmlns:xmi=&quot;http://www.omg.org/XMI&quot;
    xmlns:setup.p2=&quot;http://www.eclipse.org/oomph/setup/p2/1.0&quot;&amp;gt;
  &amp;lt;requirement
      name=&quot;com.reprezen.swagedit.feature.feature.group&quot;/&amp;gt;
  &amp;lt;repository
      url=&quot;http://products.reprezen.com/swagedit/latest/&quot;/&amp;gt;
&amp;lt;/setup.p2:P2Task&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;It is free and open-source (EPL). Enjoy.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Starting a new open-source project</title>
      <link>https://jmini.github.io/blog/2018/2018-05-15_new-open-source-project.html</link>
      <pubDate>Tue, 15 May 2018 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">blog/2018/2018-05-15_new-open-source-project.html</guid>
      <description>
      &lt;div id=&quot;preamble&quot;&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Working on open-source is a skill&amp;#x2026;&amp;#x200b;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Three month ago I started to use and to contribute &lt;code&gt;swagger-codegen&lt;/code&gt;. It feelt natural to fix and to add the stuff I needed there.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Then I received an invitation from a group of people that had started a fork of the project. Without going into the details, I think that each member had its own reasons to work on this fork. We wrote a summary in the &lt;a href=&quot;https://github.com/OpenAPITools/openapi-generator/blob/master/docs/qna.md&quot;&gt;project Q&amp;amp;A&lt;/a&gt;.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;imageblock&quot;&gt; 
   &lt;div class=&quot;content&quot;&gt; 
    &lt;img src=&quot;blog/2018/2018-05-15_logo_proposition.png&quot; alt=&quot;Enable project specific settings&quot;&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;title&quot;&gt;
    Image 1. OpenAPI Generator logo 
    &lt;a href=&quot;https://github.com/OpenAPITools/openapi-generator/issues/23&quot;&gt;proposition&lt;/a&gt; by 
    &lt;a href=&quot;https://twitter.com/jimschubert&quot;&gt;@jimschubert&lt;/a&gt;
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;The last days were really exiting, we have started the &lt;code&gt;openapi-generator&lt;/code&gt; project officially. We have now a GitHub repository: &lt;a href=&quot;https://github.com/OpenAPITools/openapi-generator&quot;&gt;OpenAPITools/openapi-generator&lt;/a&gt; The first feedback arrives. We have pushed our first &lt;a href=&quot;https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/&quot;&gt;SNAPSHOT artifacts&lt;/a&gt; on sonatype central repository. We are close to our first release&amp;#x2026;&amp;#x200b;&lt;/p&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect2&quot;&gt; 
 &lt;h3 id=&quot;running_an_open_source_project&quot;&gt;Running an open-source project&lt;/h3&gt; 
 &lt;div class=&quot;paragraph&quot;&gt; 
  &lt;p&gt;I realised during this experiment that participating in an open-source project and running it is really a skill. Some people have it, they are directly alined, they understand what they need to do. Other do not understand how it works.&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;paragraph&quot;&gt; 
  &lt;p&gt;I have learned it from talented people. All developers involved with projects hosted at the Eclipse Foundation and contributors of the Asciidoctor project have shown me the way. They were excellent teachers.&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect2&quot;&gt; 
 &lt;h3 id=&quot;what_is_next_for_openapi_generator&quot;&gt;What is next for OpenAPI Generator?&lt;/h3&gt; 
 &lt;div class=&quot;paragraph&quot;&gt; 
  &lt;p&gt;Starting an open source project is not only about code. Communication and marketing are also important. I hope we will manage build a community of user around our project. This is the best way to find potential contributors.&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect2&quot;&gt; 
 &lt;h3 id=&quot;about_openapi_generator&quot;&gt;About OpenAPI Generator:&lt;/h3&gt; 
 &lt;div class=&quot;paragraph&quot;&gt; 
  &lt;p&gt;If you wonder what the project is about, here my short definition:&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;paragraph&quot;&gt; 
  &lt;p&gt;An &lt;a href=&quot;https://github.com/OAI/OpenAPI-Specification/&quot;&gt;OpenAPI Specification (OAS)&lt;/a&gt; is a great way to describe API in a standardised, machine readable and programming language-agnostic manner. &lt;a href=&quot;https://github.com/OpenAPITools/openapi-generator&quot;&gt;OpenAPI Generator&lt;/a&gt; is an engine to generate documentation, API clients and server stubs in different languages for a given OpenAPI Specification.&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Use the eclipse-settings-maven-plugin to synchronize prefs files across projects</title>
      <link>https://jmini.github.io/blog/2018/2018-02-05_eclipse-settings-maven-plugin.html</link>
      <pubDate>Mon, 5 Feb 2018 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2018/2018-02-05_eclipse-settings-maven-plugin.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The question &amp;laquo;&amp;nbsp;&lt;em&gt;Should the meta files related to an IDE be committed in the git repository?&lt;/em&gt;&amp;nbsp;&amp;raquo; is a never-ending fight. According to &lt;a href=&quot;https://twitter.com/apupier&quot;&gt;Aurelien Pupier&lt;/a&gt;, the answer to this question is YES (&lt;a href=&quot;https://www.eclipsecon.org/europe2015/comment/628.html&quot;&gt;Talk&lt;/a&gt; from 2015 - &lt;a href=&quot;https://www.slideshare.net/AurelienPupier/committing-ide-meta-files-misconceptions-misunderstandings-and-solutions&quot;&gt;slides&lt;/a&gt; and &lt;a href=&quot;https://www.youtube.com/watch?v=J5RzSbpNLM4&quot;&gt;video&lt;/a&gt;). I totally agree with him, because settings files like &lt;code&gt;org.eclipse.core.resources.prefs&lt;/code&gt;, &lt;code&gt;org.eclipse.jdt.core.prefs&lt;/code&gt;, &lt;code&gt;org.eclipse.jdt.ui.prefs&lt;/code&gt; or &lt;code&gt;org.eclipse.m2e.core.prefs&lt;/code&gt; can contain valuable configuration information that will be shared between all Eclipse IDE users working on the project: code formatting rules, save actions, automated code cleanup tasks, compiler settings&amp;#x2026;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2018/2018-02-05_enable_project_specific_settings.png&quot; alt=&quot;Enable project specific settings&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Even today a lot of people still prefer not to have the IDE metadata files in their git Repository. This means that every coworker needs to configure his IDE and more important everybody needs to keep the configuration in sync with the team over the time.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;In both cases (having the settings files in your repo or not), the &lt;a href=&quot;https://github.com/BSI-Business-Systems-Integration-AG/eclipse-settings-maven-plugin&quot;&gt;eclipse-settings-maven-plugin&lt;/a&gt; can be interesting for you. The idea is to use maven in order to replicate the same prefs files across multiple maven modules. This way you can distribute the prefs file if they are missing in the git repository. An other use case is the distribution accros multiple teams (for example at organization level).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The source for the settings file is a simple maven artifact located in a maven repository. With a single maven command, you can synchronize the prefs files.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2018/2018-02-05_sync_eclipse-settings.png&quot; alt=&quot;Using eclipse-settings-maven-plugin to copy prefs files&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you wants to see how the setup looks like, you can refer to my &lt;a href=&quot;https://jmini.github.io/sync-eclipse-settings-example/&quot;&gt;sync-eclipse-settings-example&lt;/a&gt; page and the associated GitHub project. I have updated it in order to use the latest version published last week by my former colleagues at BSI Business Systems Integration AG.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Asciidoctor: watch you build log</title>
      <link>https://jmini.github.io/blog/2017/2017-06-25_asciidoctor-watch-build-log.html</link>
      <pubDate>Sun, 25 Jun 2017 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">blog/2017/2017-06-25_asciidoctor-watch-build-log.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Last thursday at Voxxed Days Luxembourg I had the opportunity to speak about asciidoctor in my talk (&lt;a href=&quot;http://cfp-voxxed-lux.yajug.org/2017/talk/KMC-5325/Documentation_as_code:_controler_la_qualite_!&quot;&gt;Documentation as code: contr&amp;ocirc;ler la qualit&amp;eacute; !&lt;/a&gt; - &lt;a href=&quot;https://www.slideshare.net/jmini/20170622-documentation-as-code&quot;&gt;slides&lt;/a&gt; - &lt;a href=&quot;https://www.youtube.com/watch?v=Z5nmB7lrsqU&quot;&gt;video&lt;/a&gt;). Voxxed Days conferences are similar to Devoxx, but smaller (only one day). It was the second edition of Voxxed Days Luxembourg and the conference is really great (perfect organization, pleasant ambience, nice people and interesting conversations).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-06-25_voxxed-pictures.png&quot; alt=&quot;Voxxed Days Luxembourg&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Back to my talk, I want to provide more details about a point I have presented: &lt;strong&gt;how to monitor your asciidoctor build logs with jenkins&lt;/strong&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;During the build, asciidoctor tells you when something is unexpected. Let me give you a real example: In the &lt;a href=&quot;http://eclipsescout.github.io/&quot;&gt;eclipse scout documentation&lt;/a&gt;, you have a lot of code snippets with callouts to mark certain lines.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;fig-doc&quot; class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-06-25_eclipse-scout-doc-example.png&quot; alt=&quot;Eclipse Scout documentation extract&quot;&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Figure 1. Eclipse scout documentation extract
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;In order to do this, you need to define the callout in your source code and add the explanation after the code snippet as presented in &lt;a href=&quot;blog/2017/2017-06-25_asciidoctor-watch-build-log.html#lst-callout&quot;&gt;Listing 1&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;lst-callout&quot; class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 1. Callout example
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-asciidoc&quot; data-lang=&quot;asciidoc&quot;&gt;[source,adoc]
.Initial implementation of class OrganizationTablePage.
----
(..)
    return TEXTS.get(&quot;Organizations&quot;); // &amp;lt;1&amp;gt;
(..)
----
&amp;lt;1&amp;gt; Make sure to add a translated text entry for &quot;Organizations&quot; using the Scout NLS tooling&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If there is a mismatch between the two elements, you will get a warning in your logs:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre&gt;[INFO]
[INFO] --- asciidoctor-maven-plugin:1.5.5:process-asciidoc (book_scout_intro-to-html) @ scout_beginners_guide ---
[INFO] Using &apos;UTF-8&apos; encoding to copy filtered resources.
[INFO] ignoreDelta true
[INFO] Copying 0 resource
asciidoctor: WARNING: _TutorialStep2.adoc: line 247: no callouts refer to list item 1 beginners_guide/src/docs/beginners-guide.adoc
[INFO]&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you are using Jenkins as continuous integration server, the &lt;a href=&quot;https://plugins.jenkins.io/warnings&quot;&gt;warnings plugin&lt;/a&gt; helps you to find those lines in your log. It also keeps a record of them, in order to track the evolution over the time.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-06-25_jenkins.png&quot; alt=&quot;Jenkins Job&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Here is how you can configure the plugin in the admin view in order to detect the asciidoctor lines:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-06-25_jenkins_admin_config.png&quot; alt=&quot;Jenkins Admin configuration&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 2. Regular expression:
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre&gt;asciidoctor: (WARNING|ERROR): ([^:]+): line ([0-9]+): (.*)&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 3. Mapping Script:
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre&gt;import hudson.plugins.warnings.parser.Warning

String category = matcher.group(1)
String fileName = matcher.group(2)
String lineNumber = matcher.group(3)
String message = matcher.group(4)

return new Warning(fileName, Integer.parseInt(lineNumber), &quot;Dynamic Parser&quot;, category, message);&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Then in your build definition you need to add a post-build step:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-06-25_jenkins_job_config.png&quot; alt=&quot;Jenkins Job configuration&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Now you are informed when something goes wrong in your documentation. By the way there is the idea that Asciidoctor could produce a report containing all the warnings and errors that are discovered during the build. They could be collected in a xml or json file. For the moment &lt;a href=&quot;https://github.com/asciidoctor/asciidoctor/issues/44&quot;&gt;issue #44&lt;/a&gt; is still open.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;You can have a look at the slides on &lt;a href=&quot;https://www.slideshare.net/jmini/20170622-documentation-as-code&quot;&gt;SlideShare&lt;/a&gt; or at the recorded video on &lt;a href=&quot;https://www.youtube.com/watch?v=Z5nmB7lrsqU&quot;&gt;YouTube&lt;/a&gt; (in french).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;PS: I have already proposed &lt;a href=&quot;https://www.eclipsecon.org/europe2017/session/documentation-code-asciidoctor&quot;&gt;a talk&lt;/a&gt; for EclipseCon Europe 2017. I hope I will get a slot to be able to present more aspects of the &quot;documentation as code&quot; pattern.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Mylyn Wikitext is available on maven central</title>
      <link>https://jmini.github.io/blog/2017/2017-03-26_wikitext_on_maven_central.html</link>
      <pubDate>Sun, 26 Mar 2017 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2017/2017-03-26_wikitext_on_maven_central.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;As announced in my &lt;a href=&quot;blog/2017/2017-02-02_wikitext_v3.html&quot;&gt;previous blog post&lt;/a&gt;, important refactorings are going in the mylyn wikitext project. One of the first goals is achieved: the jars are now available on maven central (see also &lt;a href=&quot;http://greensopinion.com/2017/03/06/Mylyn-WikiText-on-Maven-Central.html&quot;&gt;Mylyn WikiText on Maven Central&lt;/a&gt; by David Green). Have a look at the &lt;a href=&quot;https://mvnrepository.com/artifact/org.eclipse.mylyn.docs&quot;&gt;org.eclipse.mylyn.docs group&lt;/a&gt; in a maven central viewer (right now the newest version is &lt;code&gt;3.0.6&lt;/code&gt;).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Wikitext provides the capability to transform from one language to another. I have already blogged about the &lt;a href=&quot;blog/2017/tmp/../../2016/2016-12-21_convert_to_asciidoc.html&quot;&gt;possibility to convert to AsciiDoc&lt;/a&gt; from Eclipse IDE (new feature introduced with Oxygen M4).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-03-26_generate-asciidoc.png&quot; alt=&quot;Convert from textile to AsciiDoc with Eclipse IDE&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Let demonstrates how you can convert from MediaWiki to AsciiDoc, directly in a small Java program. It is just a few lines of code in a simple main class.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-03-26_mediawiki_to_adoc.png&quot; alt=&quot;From MediaWiki to Asciidoctor (logos)&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;In the Example the content of the &lt;a href=&quot;http://wiki.eclipse.org/Scout/Contribution&quot;&gt;Scout/Contribution page&lt;/a&gt; taken from the Eclipse wiki will be converted into an AsciiDoc File: &lt;code&gt;scout_contribution.adoc&lt;/code&gt;. The code is straight forward:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 1. Example main class
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;import java.io.File;
import java.io.StringWriter;
import java.net.URL;

import org.eclipse.mylyn.wikitext.asciidoc.internal.AsciiDocDocumentBuilder;
import org.eclipse.mylyn.wikitext.mediawiki.MediaWikiLanguage;
import org.eclipse.mylyn.wikitext.parser.DocumentBuilder;
import org.eclipse.mylyn.wikitext.parser.MarkupParser;

import com.google.common.base.Charsets;
import com.google.common.io.Files;
import com.google.common.io.Resources;

public class MediaWikiToAdocExample {

  public static void main(String[] args) throws Exception {
    String url = &quot;http://wiki.eclipse.org/index.php?title=Scout/Contribution&amp;amp;action=raw&amp;amp;templates=expand&quot;;
    String input = Resources.toString(new URL(url), Charsets.UTF_8);

    MediaWikiLanguage markupLanguage = new MediaWikiLanguage();
    markupLanguage.setInternalLinkPattern(&quot;https://wiki.eclipse.org/index.php?title={0}&quot;);
    MarkupParser parser = new MarkupParser(markupLanguage);

    StringWriter writer = new StringWriter();
    DocumentBuilder builder = new AsciiDocDocumentBuilder(writer);
    parser.setBuilder(builder);
    parser.parse(input);

    String output = &quot;= Eclipse Scout - Contribution\n\n&quot;;
    output += writer.toString();
    Files.write(output, new File(&quot;scout_contribution.adoc&quot;), Charsets.UTF_8);
  }
}&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;On your classpath, you will need some of the wikitext jars and google guava. The &lt;code&gt;pom.xml&lt;/code&gt; File for Maven looks like this:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 2. pom.xml for the Example
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&amp;gt;
    &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;

    &amp;lt;groupId&amp;gt;wikitext.examples&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;mediawiki-to-adoc&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;0.0.1-SNAPSHOT&amp;lt;/version&amp;gt;

    &amp;lt;dependencies&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.eclipse.mylyn.docs&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;org.eclipse.mylyn.wikitext&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;3.0.6&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.eclipse.mylyn.docs&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;org.eclipse.mylyn.wikitext.mediawiki&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;3.0.6&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.eclipse.mylyn.docs&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;org.eclipse.mylyn.wikitext.asciidoc&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;3.0.6&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;com.google.guava&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;guava&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;21.0&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;
    &amp;lt;/dependencies&amp;gt;

    &amp;lt;build&amp;gt;
        &amp;lt;plugins&amp;gt;
            &amp;lt;plugin&amp;gt;
                &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
                &amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;
                &amp;lt;version&amp;gt;3.6.0&amp;lt;/version&amp;gt;
                &amp;lt;configuration&amp;gt;
                    &amp;lt;source&amp;gt;1.8&amp;lt;/source&amp;gt;
                    &amp;lt;target&amp;gt;1.8&amp;lt;/target&amp;gt;
                &amp;lt;/configuration&amp;gt;
            &amp;lt;/plugin&amp;gt;
        &amp;lt;/plugins&amp;gt;
    &amp;lt;/build&amp;gt;
&amp;lt;/project&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Here is a side by side comparison of the wiki page and of a preview of &lt;code&gt;scout_contribution.adoc&lt;/code&gt;:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;a class=&quot;image&quot; href=&quot;blog/2017/2017-03-26_mediawiki_and_adoc_preview.png&quot;&gt;&lt;img src=&quot;blog/2017/2017-03-26_mediawiki_and_adoc_preview_800.png&quot; alt=&quot;2017 03 26 mediawiki and adoc preview 800&quot;&gt;&lt;/a&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you look very closely at this example, you might notice some issues during the conversion process. I have reported them in &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=508262&quot;&gt;Bug 508262&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you are interessted by the Mylyn Wikitext project, you can follow &lt;a href=&quot;https://twitter.com/WikiText&quot;&gt;@WikiText&lt;/a&gt; on twitter. You can ask questions on StackOverflow using the &lt;a href=&quot;http://stackoverflow.com/questions/tagged/mylyn-wikitext&quot;&gt;mylyn-wikitext&lt;/a&gt; tag. Are you looking for more usage examples of Mylyn Wikitext? Have a look at &lt;a href=&quot;https://github.com/greensopinion/wikitext-examples&quot;&gt;greensopinion/wikitext-examples&lt;/a&gt; on GitHub. David Green has prepared additional use cases there.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Mylyn Docs Wikitext: changes with Version 3.0.0</title>
      <link>https://jmini.github.io/blog/2017/2017-02-02_wikitext_v3.html</link>
      <pubDate>Thu, 2 Feb 2017 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2017/2017-02-02_wikitext_v3.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;David Green has proposed to do a lot of changes to Mylyn Docs Wikitext. The &quot;core&quot; plugins will now be plain java/maven artifacts. The expected benefits are:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;easier to build/release Mylyn Docs (or at least Mylyn WikiText) separately from Mylyn&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;easier to consume Mylyn WikiText core bundles (e.g. as plain jars, with normal poms)&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;easier to contribute (e.g. without knowledge of OSGi or PDE)&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;better structured code/tests (e.g. using normal Maven project layout)&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;faster cycle time (e.g. easier to verify code changes, faster builds)&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Another side goal is to be present on maven central as soon as possible.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;These structural modifications require changing the version to &lt;code&gt;3.0.0-SNAPSHOT&lt;/code&gt; and this is the occasion to review what we are publishing and how (update sites, features, p2 repository, bundle names, package names, &amp;#x2026;&amp;#x200b;). If you are using wikitext as part of your build (to build the eclipse help for example) or as part of another tool, be aware that this is a breaking change. Your feedback is welcomed on &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=511120&quot;&gt;Bug 511120&lt;/a&gt;. You can also follow the discussion on the &lt;a href=&quot;http://dev.eclipse.org/mhonarc/lists/mylyn-docs-dev/&quot;&gt;mylyn-docs-dev mailing list&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Here is one example: we might drop the standalone distribution of wikitext (jars available in a zip) that is currently available on the &lt;a href=&quot;https://eclipse.org/mylyn/downloads/&quot;&gt;Mylyn download page&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-02-02_wikitext-download-standalone.png&quot; alt=&quot;Mylyn download page&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you are using it, please notify us on Bugzilla.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Ressource filter at project level in Eclipse IDE</title>
      <link>https://jmini.github.io/blog/2017/2017-01-27_ressource-filter.html</link>
      <pubDate>Fri, 27 Jan 2017 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2017/2017-01-27_ressource-filter.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you follow the maven convention in multi-modules maven project, your directory structure will looks like this:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre&gt;\---parent
    |   .project
    |   pom.xml
    |
    +---project1
    |   |   .classpath
    |   |   .project
    |   |   pom.xml
    |   |
    |   \---src/main/java
    |       \---...
    |
    \---project2
        |   .classpath
        |   .project
        |   pom.xml
        |
        \---src/main/java
            \---...&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;When the projects are imported in Eclipse IDE, the parent project looks not nice in the &lt;em&gt;Package Explorer&lt;/em&gt;. The child modules &lt;code&gt;project1&lt;/code&gt; and &lt;code&gt;project2&lt;/code&gt; appear twice: as sub-folder of the &lt;code&gt;parent&lt;/code&gt; project and as separated java project. In my opinion this is not really user-friendly.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-01-27_package-explorer.png&quot; alt=&quot;Package Explorer&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;A solution was suggested by Ed Merks: in the parent project, the child folders can be filtered. Use the &lt;em&gt;Ressource Filters&lt;/em&gt; at project level. Select the &lt;span class=&quot;menu&quot;&gt;Properties&lt;/span&gt; context menu on the parent project and select &quot;Ressource Filters&quot; under &quot;Ressource&quot; in the tree. Click on the &lt;b class=&quot;button&quot;&gt;Add Filter&amp;#x2026;&amp;#x200b;&lt;/b&gt; button. In the Dialog configure your filter to exclude all folders with a name that matches &lt;code&gt;*&lt;/code&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-01-27_add-resource-filter.png&quot; alt=&quot;Add a Ressource Filter for project parent&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The configuration should look like this:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-01-27_resource-filters.png&quot; alt=&quot;Ressource Filters - project configuration page&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you have a look at the xml content in the &lt;code&gt;.project&lt;/code&gt; file of the &lt;code&gt;parent&lt;/code&gt; project, you should see something like this:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;	&amp;lt;filteredResources&amp;gt;
		&amp;lt;filter&amp;gt;
			&amp;lt;id&amp;gt;1485436062166&amp;lt;/id&amp;gt;
			&amp;lt;name&amp;gt;&amp;lt;/name&amp;gt;
			&amp;lt;type&amp;gt;10&amp;lt;/type&amp;gt;
			&amp;lt;matcher&amp;gt;
				&amp;lt;id&amp;gt;org.eclipse.ui.ide.multiFilter&amp;lt;/id&amp;gt;
				&amp;lt;arguments&amp;gt;1.0-name-matches-false-false-*&amp;lt;/arguments&amp;gt;
			&amp;lt;/matcher&amp;gt;
		&amp;lt;/filter&amp;gt;
	&amp;lt;/filteredResources&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;With this new project configuration, the &lt;em&gt;Package Explorer&lt;/em&gt; now hides its child folders. This means that you no longer see the modules &lt;code&gt;project1&lt;/code&gt; and &lt;code&gt;project2&lt;/code&gt; in the &lt;code&gt;parent&lt;/code&gt; project:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-01-27_package-explorer_nice.png&quot; alt=&quot;Package Explorer with hidden child modules&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I hope this will helps projects that have similar needs.&lt;/p&gt; 
&lt;/div&gt; 
&lt;hr&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;There is also an easier way to display this standard maven structure in Eclipse IDE: use the &lt;em&gt;Project Explorer&lt;/em&gt; instead of the &lt;em&gt;Package Explorer&lt;/em&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;With the menu item &lt;span class=&quot;menuseq&quot;&gt;&lt;span class=&quot;menu&quot;&gt;Projects Presentation&lt;/span&gt;&amp;nbsp;&amp;#x25b8; &lt;span class=&quot;menuitem&quot;&gt;Hierarchical&lt;/span&gt;&lt;/span&gt; the display behavior in the &lt;em&gt;Project Explorer&lt;/em&gt; can be modified.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-01-27_project-explorer-configuration.png&quot; alt=&quot;Switch the Projects Presentation configuration in the Project Explorer&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;With this new configuration, the maven structure is reflected in the IDE:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-01-27_project-explorer.png&quot; alt=&quot;Project Explorer displaying the maven structure&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;This works even with the resource filter configuration approach presented in this blog post.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Use the Eclipse Java Development Tools in a Java SE application</title>
      <link>https://jmini.github.io/blog/2017/2017-01-10_use-eclipse-jdt-in-java-app.html</link>
      <pubDate>Tue, 10 Jan 2017 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2017/2017-01-10_use-eclipse-jdt-in-java-app.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Stephan Herrmann has &lt;a href=&quot;https://objectteams.wordpress.com/2017/01/09/eclipse-neon-2-is-on-maven-central/&quot;&gt;announced&lt;/a&gt; that some libraries of the Eclipse Neon.2 release are now available on &lt;a href=&quot;https://search.maven.org/&quot;&gt;maven central&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-01-10_eclipse-jars-on-maven-central.png&quot; alt=&quot;Some eclipse jars are now available the central repository&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;It is now easy to reuse the piece of Eclipse outside any Eclipse based application. Let me share with you this simple example: &lt;em&gt;use the java code formatter of Eclipse JDT in a simple java main class&lt;/em&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: create a very simple maven project. You will need &lt;a href=&quot;https://search.maven.org/#artifactdetails%7Corg.eclipse.jdt%7Corg.eclipse.jdt.core%7C3.12.2%7Cjar&quot;&gt;org.eclipse.jdt.core&lt;/a&gt; as dependency.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 1. Example pom.xml
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;
      xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
      xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&amp;gt;
  &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
  &amp;lt;groupId&amp;gt;example&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;java-formatter&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;1.0.0-SNAPSHOT&amp;lt;/version&amp;gt;

  &amp;lt;dependencies&amp;gt;
    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;org.eclipse.jdt&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;org.eclipse.jdt.core&amp;lt;/artifactId&amp;gt;
      &amp;lt;version&amp;gt;3.12.2&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
  &amp;lt;/dependencies&amp;gt;
&amp;lt;/project&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;: write a java class with a main method.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 2. Example main class
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;import java.util.Properties;

import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.ToolFactory;
import org.eclipse.jdt.core.formatter.CodeFormatter;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.text.edits.TextEdit;

public class MainFormatter {

  public static void main(String[] args) {
    String result;

    String javaCode = &quot;public class MyClass{ &quot;
                        + &quot;public static void main(String[] args) { &quot;
                        + &quot;System.out.println(\&quot;Hello World\&quot;);&quot;
                        + &quot; }&quot;
                        + &quot; }&quot;;

    Properties prefs = new Properties();
    prefs.setProperty(JavaCore.COMPILER_SOURCE, CompilerOptions.VERSION_1_8);
    prefs.setProperty(JavaCore.COMPILER_COMPLIANCE, CompilerOptions.VERSION_1_8);
    prefs.setProperty(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, CompilerOptions.VERSION_1_8);

    CodeFormatter codeFormatter = ToolFactory.createCodeFormatter(prefs);
    IDocument doc = new Document(javaCode);
    try {
      TextEdit edit = codeFormatter.format(CodeFormatter.K_COMPILATION_UNIT | CodeFormatter.F_INCLUDE_COMMENTS,
                                             javaCode, 0, javaCode.length(), 0, null);
      if (edit != null) {
        edit.apply(doc);
        result = doc.get();
      }
      else {
        result = javaCode;
      }
    }
    catch (BadLocationException e) {
      throw new RuntimeException(e);
    }

    System.out.println(result);
  }
}&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;: there is no step 3! You can just run your code in your IDE or from the command line using maven to compute your classpath.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2017/2017-01-10_console.png&quot; alt=&quot;Console output&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The code used in this example is a simplification of what you can find in another great open-source project: &lt;a href=&quot;https://github.com/forge/roaster&quot;&gt;JBoss Forge Roaster&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Oxygen M4: convert to AsciiDoc with Mylyn WikiText</title>
      <link>https://jmini.github.io/blog/2016/2016-12-21_convert_to_asciidoc.html</link>
      <pubDate>Wed, 21 Dec 2016 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2016/2016-12-21_convert_to_asciidoc.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you need to convert your documentation to the AsciiDoc format, you might be interested in this new feature delivered with Eclipse Oxygen M4 (see also my previous blog post: &lt;a href=&quot;blog/2016/2016-10-28_from_mediawiki_to_asciidoc.html&quot;&gt;Asciidoctor instead of MediaWiki?&lt;/a&gt;). Any file format supported by Mylyn WikiText (textile, mediawiki, markdown and more) can now be converted to the AsciiDoc format. Just select &lt;span class=&quot;menuseq&quot;&gt;&lt;span class=&quot;menu&quot;&gt;WikiText&lt;/span&gt;&amp;nbsp;&amp;#x25b8; &lt;span class=&quot;menuitem&quot;&gt;Generate AsciiDoc&lt;/span&gt;&lt;/span&gt; from the context menu in the package explorer.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2016/2016-12-21_textile_example.png&quot; alt=&quot;Convert to AsciiDoc in Eclipse IDE&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;A new file is generated near to the original file (&lt;code&gt;example.asciidoc&lt;/code&gt; in this example). Of course you can preview it with your favorite asciidoctor viewer (Chrome with the &lt;a href=&quot;https://chrome.google.com/webstore/detail/asciidoctorjs-live-previe/iaalpfgpbocpdfblpnhhgllgbdbchmia?hl=en&quot;&gt;Asciidoctor.js Live Preview&lt;/a&gt; extension in my case).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2016/2016-12-21_preview.png&quot; alt=&quot;AsciiDoc file preview in Chrome&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;While I was trying to convert some pages of &lt;a href=&quot;http://wiki.eclipse.org/&quot;&gt;Eclipsepedia&lt;/a&gt; to Asciidoctor, I have noticed that some additional concepts need to be supported by the converter. I have opened &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=508262&quot;&gt;Bug 508262&lt;/a&gt; to track them. Feel free to leave feedback there if something is not working for you.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;You can get the Oxygen M4 version of Eclipse IDE from the &lt;a href=&quot;http://www.eclipse.org/downloads/index-developer.php&quot;&gt;Developer Builds download page&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Asciidoctor instead of MediaWiki?</title>
      <link>https://jmini.github.io/blog/2016/2016-10-28_from_mediawiki_to_asciidoc.html</link>
      <pubDate>Fri, 28 Oct 2016 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">blog/2016/2016-10-28_from_mediawiki_to_asciidoc.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;During &lt;a href=&quot;https://www.eclipsecon.org/europe2016/&quot;&gt;EclipseCon Europe 2016&lt;/a&gt; we had a great BoF Session about documentation with Asciidoctor at Eclipse. A lot of subjects were discussed, from the editing possibilities inside or outside Eclipse IDE to the best toolchains for document generation/customization.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2016/2016-10-28_bofs_eclipsecon_europe_2016.jpg&quot; alt=&quot;BoFs Session Schedule at EclipseCon Europe 2016&quot;&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;One topic that was discussed during the meeting was the conversion of MediaWiki documentation to the AsciiDoc format. I am happy to blog about this topic and to propose a solution.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;A lot of Eclipse projects are using the &lt;a href=&quot;https://wiki.eclipse.org/&quot;&gt;Eclipse MediaWiki instance&lt;/a&gt; for their documentation. Maybe I can summarize my vision on this topic: I consider the usage of a Git repository better as a wiki engine. A wiki engine is not enough when it comes to documentation of different versions of your project/product (git branches, cherry pick&amp;#x2026;&amp;#x200b;). If you host the repository on GitHub (it works also with GitLab) and if you use one of the markup syntaxes supported by the online editor, you get almost the same experience as with a wiki engine (online edition, online preview of changes, navigation in the history, diffs&amp;#x2026;&amp;#x200b;). Reviews and discussions inside pull requests are a great way to collaborate. Having also everything offline is a big plus (I work a lot in the train). Amongst the different markup syntaxes you can choose, I consider the AsciiDoc format as the best option (management of code snippets, callout support in listings blocs, variable substitution and conditional inclusion, multiple output formats, live preview in browser during edition in any text editor, easy integration in existing build toolchain, possibility to extend the language with custom macros&amp;#x2026;&amp;#x200b;). In my opinion Asciidoctor is becoming a state of the art documentation toolchain in many projects.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;This immediately raises the next question: what can we do with the great content we have on the Eclipse wiki? How can it be migrated to the AsciiDoc format? In my opinion the &lt;a href=&quot;https://eclipse.org/mylyn/docs&quot;&gt;Mylyn Wikitext project&lt;/a&gt; can help, but an &lt;code&gt;AsciiDocDocumentBuilder&lt;/code&gt; is missing. I have opened &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=506643&quot;&gt;Bug 506643&lt;/a&gt; for that and &lt;a href=&quot;https://git.eclipse.org/r/84040&quot;&gt;contributed&lt;/a&gt; a first implementation. My code will now go through the eclipse review process. To test it today, you need to check out the repo (and the corresponding gerrit change).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Here a simple example:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 1. Example MediaWiki document
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre&gt;&apos;&apos;&apos;Lorem ipsum&apos;&apos;&apos; sed tempor euismod elit, et eleifend tellus lacinia a.

=== Penatibus et magnis

Pellentesque ut &apos;&apos;lorem lorem&apos;&apos;.

[[Image:foo.png|Foo image]]

Nulla ut sapien tellus. Quisque id semper nulla. Nullam facilisis risus turpis.

* Cras posuere tempor urna
* Laoreet pharetra diam rhoncus at
* Quisque ornare diam eu iaculis auctor.

Pellentesque tincidunt ultricies varius. [http://eclipse.org/ Lorem ipsum dolor] sit amet, consectetur adipiscing elit.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse potenti.&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;That will be converted to:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 2. Result of the conversion to AsciiDoc
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre&gt;*Lorem ipsum* sed tempor euismod elit, et eleifend tellus lacinia a.

=== Penatibus et magnis

Pellentesque ut _lorem lorem_.

image:foo.png[title=&quot;Foo image&quot;]

Nulla ut sapien tellus. Quisque id semper nulla. Nullam facilisis risus turpis.

* Cras posuere tempor urna
* Laoreet pharetra diam rhoncus at
* Quisque ornare diam eu iaculis auctor.

Pellentesque tincidunt ultricies varius. link:http://eclipse.org/[Lorem ipsum dolor] sit amet, consectetur adipiscing elit.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse potenti.&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Of course my tool has certainly some limitations. Markup conversion is never an easy task. I think that the MediaWiki parser provided by the Mylyn Wikitext project is a good choice, because it is already used for the generation of some eclipse help pages. For the conversion to AsciiDoc there is already some support in the Wikitext framework (AsciiDoc is just an other output Markup there). I just created a new class: &lt;code&gt;AsciiDocDocumentBuilder&lt;/code&gt; (plus an other one for the test suite). I have used the &lt;code&gt;MarkdownDocumentBuilder&lt;/code&gt; as base and adapted it for AsciiDoc. I consider my implementation as a first usable version. Any feedback is welcomed (on the Bug, on Gerrit, twitter or on the mailing list). Depending on the feedback, I will be happy to iterate and to improve it for concrete use cases.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;By the way, if an Eclipse Project wants to migrate and start to use Asciidoctor, I will be happy to help as much as I can.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;EDIT: the feature is available in Eclipse IDE Oxygen version, read more here: &lt;a href=&quot;blog/2016/2016-12-21_convert_to_asciidoc.html&quot;&gt;Oxygen M4: convert to AsciiDoc with Mylyn WikiText&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Install "Plug-in Spy" in your Eclipse Neon IDE</title>
      <link>https://jmini.github.io/blog/2016/2016-09-16_eclipse_plugin_spy.html</link>
      <pubDate>Fri, 16 Sep 2016 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">blog/2016/2016-09-16_eclipse_plugin_spy.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;There is a lot of documentation about the Eclipse &quot;Plug-in Spy&quot; feature (&lt;a href=&quot;http://www.vogella.com/tutorials/EclipseCodeAccess/article.html#plug-in-spy-for-ui-parts&quot;&gt;Plug-in Spy for UI parts&lt;/a&gt; or &lt;a href=&quot;https://scratsh.wordpress.com/2009/06/09/eclipse-3-5-plug-in-spy-and-menus/&quot;&gt;Eclipse 3.5 - Plug-in Spy and menus&lt;/a&gt;). Im my opinion one information is missing: what you need to install to use the Spy feature in your Eclipse Neon IDE. Here is my small how-to.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Select &quot;Install new Software&amp;#x2026;&amp;#x200b;&quot; in the &quot;Help&quot; Menu. In the dialog, switch to the &quot;The Eclipse Project Updates&quot; update site (or enter its location &lt;code&gt;&lt;a href=&quot;http://download.eclipse.org/eclipse/updates/4.6&quot; class=&quot;bare&quot;&gt;http://download.eclipse.org/eclipse/updates/4.6&lt;/a&gt;&lt;/code&gt;). Filter with &quot;PDE&quot; and select the &quot;Eclipse PDE Plug-in Developer Resources&quot;. Validate your choices with &quot;Next&quot; and &quot;Finish&quot;, Eclipse will install the feature and ask for a Restart.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;img-dialog&quot; class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2016/2016-09-16_install-dialog.png&quot; alt=&quot;2016 09 16 install dialog&quot;&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Figure 1. Install new Software in Eclipse
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you prefer the Oomph way, you can paste the snippet contained in &lt;a href=&quot;blog/2016/2016-09-16_eclipse_plugin_spy.html#lst-oomph&quot;&gt;Listing 1&lt;/a&gt; in your &lt;code&gt;installation.setup&lt;/code&gt; file (Open it with the Menu: &lt;span class=&quot;menuseq&quot;&gt;&lt;span class=&quot;menu&quot;&gt;Navigate&lt;/span&gt;&amp;nbsp;&amp;#x25b8; &lt;span class=&quot;submenu&quot;&gt;Open Setup&lt;/span&gt;&amp;nbsp;&amp;#x25b8; &lt;span class=&quot;menuitem&quot;&gt;Installation&lt;/span&gt;&lt;/span&gt;).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;lst-oomph&quot; class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;setup.p2:P2Task
    xmi:version=&quot;2.0&quot;
    xmlns:xmi=&quot;http://www.omg.org/XMI&quot;
    xmlns:setup.p2=&quot;http://www.eclipse.org/oomph/setup/p2/1.0&quot;&amp;gt;
  &amp;lt;requirement
      name=&quot;org.eclipse.pde.source.feature.group&quot;/&amp;gt;
  &amp;lt;repository
      url=&quot;http://download.eclipse.org/eclipse/updates/4.6&quot;/&amp;gt;
&amp;lt;/setup.p2:P2Task&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Your Oomph Editor should looks like in &lt;a href=&quot;blog/2016/2016-09-16_eclipse_plugin_spy.html#img-oomph&quot;&gt;Figure 2&lt;/a&gt;. Save the file and select &quot;Perform Setup Task&amp;#x2026;&amp;#x200b;&quot; (in the &lt;span class=&quot;menu&quot;&gt;Help&lt;/span&gt; menu). Oomph will update your installation and will ask for a restart.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;img-oomph&quot; class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2016/2016-09-16_installation-oomph-editor.png&quot; alt=&quot;2016 09 16 installation oomph editor&quot;&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Figure 2. Oomph setup Editor: installation.setup File
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;In both cases, after the restart you can press &lt;span class=&quot;keyseq&quot;&gt;&lt;kbd&gt;alt&lt;/kbd&gt;+&lt;kbd&gt;shift&lt;/kbd&gt;+&lt;kbd&gt;f1&lt;/kbd&gt;&lt;/span&gt; and use the Plug-in Spy as in &lt;a href=&quot;blog/2016/2016-09-16_eclipse_plugin_spy.html#img-spy&quot;&gt;Figure 3&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;img-spy&quot; class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2016/2016-09-16_plugin-spy.png&quot; alt=&quot;2016 09 16 plugin spy&quot;&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Figure 3. Plug-in Spy in Eclipse Neon
 &lt;/div&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Eclipse Neon: diamond notation as clean-up action</title>
      <link>https://jmini.github.io/blog/2016/2016-06-19_eclipse_diamond_notation.html</link>
      <pubDate>Sat, 18 Jun 2016 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">blog/2016/2016-06-19_eclipse_diamond_notation.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I know Eclipse Neon brings features in the Java editor that I will use almost every day. I have already &lt;a href=&quot;https://www.bsi-software.com/en/scout-blog/article/when-reporting-a-bug-helps-to-improve-eclipse.html&quot;&gt;blogged&lt;/a&gt; about &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=476304&quot;&gt;Bug 476304&lt;/a&gt;. It will be a pleasure to be able to navigate to inner classes correctly.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Today I want to write about the &lt;a href=&quot;http://www.eclipse.org/eclipse/news/4.6/jdt.php#remove-redundant-type-arguments&quot;&gt;clean-Up to remove redundant type arguments&lt;/a&gt; feature. This is something I was looking for at the beginning of 2015.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Since Java 7 you can use the Diamond operator. The code line presented in &lt;a href=&quot;blog/2016/2016-06-19_eclipse_diamond_notation.html#lst1&quot;&gt;Listing 1&lt;/a&gt; (Java 6) can be written as in &lt;a href=&quot;blog/2016/2016-06-19_eclipse_diamond_notation.html#lst2&quot;&gt;Listing 2&lt;/a&gt; (Java 7).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;lst1&quot; class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 1. Declaration and initialization of a List in Java 6
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;List&amp;lt;String&amp;gt; rows = new ArrayList&amp;lt;String&amp;gt;();&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div id=&quot;lst2&quot; class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 2. Usage of the diamond notation in Java 7
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;List&amp;lt;String&amp;gt; rows = new ArrayList&amp;lt;&amp;gt;();&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;With Eclipse Mars (and probably before) you could already let the compiler warn you about Redundant type arguments. The setting is under Preferences &amp;#x2192; Java &amp;#x2192; Compiler &amp;#x2192; Errors/Warnings in the tree. And in the list: Generic Types &amp;#x2192; Redundant type arguments (1.7 or higher) as presented in &lt;a href=&quot;blog/2016/2016-06-19_eclipse_diamond_notation.html#fig1&quot;&gt;Figure 1&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;fig1&quot; class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2016/2016-06-19_compiler_settings.png&quot; alt=&quot;2016 06 19 compiler settings&quot;&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Figure 1. Compiler setting for redundant type arguments
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;With this setting enabled, it was possible to Quick-Fix all the code locations that were not using the diamond operator (see &lt;a href=&quot;blog/2016/2016-06-19_eclipse_diamond_notation.html#fig2&quot;&gt;Figure 2&lt;/a&gt;).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;fig2&quot; class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2016/2016-06-19_quick-fix.png&quot; alt=&quot;2016 06 19 quick fix&quot;&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Figure 2. Quick-fix to remove redundant type arguments
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;This is a lot of &lt;span class=&quot;keyseq&quot;&gt;&lt;kbd&gt;CTRL&lt;/kbd&gt;+&lt;kbd&gt;1&lt;/kbd&gt;&lt;/span&gt; for an operation that does not require any manual intervention. If the team as decided to use the diamond notation, it should be used everywhere. This belongs to coding guidelines, exactly as code format.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;With Eclipse Neon a new clean-up action makes this possible! You can configure Eclipse to remove redundant type arguments when you save your Java files. Open the preference page Java &amp;#x2192; Editor &amp;#x2192; Save actions. Check the Checkbox &quot;Additional actions&quot; and click on the &lt;b class=&quot;button&quot;&gt;Configure&amp;#x2026;&amp;#x200b;&lt;/b&gt; button. Switch to the &quot;Unecessary Code&quot; Tab and enable &quot;Remove redundant type arguments (1.7 or higher)&quot;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;fig3&quot; class=&quot;imageblock&quot;&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;img src=&quot;blog/2016/2016-06-19_preferences.png&quot; alt=&quot;2016 06 19 preferences&quot;&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Figure 3. Configure the new clean-up action with Eclipse Neon
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;a href=&quot;http://www.eclipse.org/neon/&quot;&gt;Eclipse neon&lt;/a&gt; is coming next wednesday. Stay tuned!&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Eclipse debugging: truncated String values</title>
      <link>https://jmini.github.io/blog/2016/2016-05-27_eclipse_debugging_truncated_string_value.html</link>
      <pubDate>Fri, 27 May 2016 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">blog/2016/2016-05-27_eclipse_debugging_truncated_string_value.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Being able to inspect variable values during debugging is probably one of the mostly used feature in Eclipse.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;With String variables, the default Eclipse configuration is to truncate big Strings after 10000 characters. This can be a problem with long text documents loaded in a String.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Inspect a big String variable in Eclipse IDE
 &lt;/div&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-05-27_inspect_variable.png&quot; alt=&quot;2016-05-27_inspect_variable&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;As always with Eclipse, there is a possibility to change this configuration. Just open the &quot;Max Length&amp;#x2026;&amp;#x200b;&quot; entry in the context menu of the detail pane (Variables view). In the next dialog set the value &quot;Maximum characters to display in details pane&quot;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Open the &apos;Max Length&amp;#x2026;&amp;#x200b;&apos; entry in the context menu
 &lt;/div&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-05-27_max_length_menu.png&quot; alt=&quot;2016-05-27_max_length_menu&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The new limit will also be considered in the yellow overlay window.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Eclipse Neon: disable the theming</title>
      <link>https://jmini.github.io/blog/2016/2016-04-24_disable_eclipse_theming.html</link>
      <pubDate>Sun, 24 Apr 2016 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">blog/2016/2016-04-24_disable_eclipse_theming.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;At &lt;a href=&quot;http://devoxx.fr/&quot;&gt;Devoxx France 2016&lt;/a&gt;, Mika&amp;euml;l Barbero gave &lt;a href=&quot;https://cfp.devoxx.fr/2016/talk/CEK-5422/The_Eclipse_IDE:_The_Force_Awakens&quot;&gt;a great talk&lt;/a&gt; about the Eclipse IDE. The talks was well attended (the room was almost full). This is the proof that there is still a lot of interest for the Eclipse IDE.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-04-24_room.jpg&quot; alt=&quot;2016-04-24_room&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The talk was a great presentation of all improvements made to the IDE (already implemented with mars, coming with neon or oxygen). It was a big new and noteworthy, organized by main categories that matters to the users and not by eclipse projects. I really appreciated this approach.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If understand French, I recommend you to watch &lt;a href=&quot;https://www.youtube.com/watch?v=Ek5pCnI0Zps&quot;&gt;the video of the talk&lt;/a&gt;. In the other case, I am sure you will learn something by just looking at &lt;a href=&quot;http://www.slideshare.net/mikaelbarbero/the-eclipse-ide-the-force-awakens-devoxx-france-2016&quot;&gt;the slides&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Something I have learned: with Neon you can deactivate the theming (appearance section of the preferences) completely. In that case the CSS styling engine will be deactivated and your Eclipse IDE will have a really raw look. To disable the theming, just uncheck the checkbox highlighted in &lt;a href=&quot;blog/2016/2016-04-24_disable_eclipse_theming.html#img-prefs&quot;&gt;Figure 2&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;img-prefs&quot; class=&quot;paragraph&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Eclipse preferences &amp;gt; General &amp;gt; Appearance (Eclipse Neon)
 &lt;/div&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-04-24_preferences_appearance.png&quot; alt=&quot;2016-04-24_preferences_appearance&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;After a restart your Eclipse will look like this screenshot (&lt;a href=&quot;blog/2016/2016-04-24_disable_eclipse_theming.html#img-screenshot&quot;&gt;Figure 3&lt;/a&gt;):&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;img-screenshot&quot; class=&quot;paragraph&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Eclipse IDE with disabled theming
 &lt;/div&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-04-24_eclipse_neon_disabled_theming.png&quot; alt=&quot;2016-04-24_eclipse_neon_disabled_theming&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I hope the performances will be better, it particular when Eclipse IDE is used on distant virtualized environments like Citrix clients. If you want to test it now, download a &lt;a href=&quot;http://www.eclipse.org/downloads/index-developer.php&quot;&gt;Milestone release of Neon&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Documentation: do not forget the edit link</title>
      <link>https://jmini.github.io/blog/2016/2016-04-22_doc_edit_link.html</link>
      <pubDate>Fri, 22 Apr 2016 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">blog/2016/2016-04-22_doc_edit_link.html</guid>
      <description>
      &lt;div id=&quot;preamble&quot;&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;In my opinion if you publish documentation online, you should always tell your readers how they can change/update it.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;I picked up several examples of documentation hosted on GitHub. On each page there is an &quot;Edit on GitHub&quot; link. This eases the creation of pull requests.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Example 1: Microsoft Azure documentation (see &lt;a href=&quot;https://azure.microsoft.com/en-us/documentation/articles/java-download-azure-sdk/&quot;&gt;this page&lt;/a&gt; for example):&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-04-22_azure.png&quot; alt=&quot;2016-04-22_azure&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Example 2: the &lt;a href=&quot;http://www.eclipse.org/xtend/documentation/index.html&quot;&gt;Eclipse Xtend documentation&lt;/a&gt;:&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-04-22_xtend.png&quot; alt=&quot;2016-04-22_xtend&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Example 3: Eclipse Scout documentation (see &lt;a href=&quot;http://eclipsescout.github.io/6.0/latest/article_helloworld/scout_helloworld/scout_helloworld.html&quot;&gt;the scout &quot;hello world&quot; page&lt;/a&gt;):&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-04-22_scout.png&quot; alt=&quot;2016-04-22_scout&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Example 4: My blog (see &lt;a href=&quot;https://jmini.github.io/blog/2016/2016-03-02_pr_improve_documentation.html&quot;&gt;my last article&lt;/a&gt; for example):&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-04-22_blog.png&quot; alt=&quot;2016-04-22_blog&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;And many other projects are following this best practice&amp;#x2026;&amp;#x200b;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;This isn&amp;#x2019;t a GitHub only stuff. The same pattern can be used if the documentation is hosted on a wiki engine. As an example the &lt;a href=&quot;http://help.eclipse.org/mars/index.jsp&quot;&gt;GEF4 documentation&lt;/a&gt; does it exactly like that:&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-04-22_gef4.png&quot; alt=&quot;2016-04-22_gef4&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect2&quot;&gt; 
 &lt;h3 id=&quot;asciidoctorj_macro&quot;&gt;Asciidoctorj macro&lt;/h3&gt; 
 &lt;div class=&quot;paragraph&quot;&gt; 
  &lt;p&gt;If you are using asciidoctor for your documentation and if the sources are hosted on GitHub, you might be interested in the small extension I wrote: &lt;a href=&quot;https://jmini.github.io/asciidoctorj-gh-edit/&quot;&gt;asciidoctorj-gh-edit&lt;/a&gt;. Short usage example:&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;listingblock&quot;&gt; 
  &lt;div class=&quot;content&quot;&gt; 
   &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-asciidoc&quot; data-lang=&quot;asciidoc&quot;&gt;:repository: jmini/jmini.github.io
:branch: develop

Do you want to improve this documentation? Please gh:edit[].&lt;/code&gt;&lt;/pre&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;paragraph&quot;&gt; 
  &lt;p&gt;A second example where more parameters are defined as arguments of the macro:&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class=&quot;listingblock&quot;&gt; 
  &lt;div class=&quot;content&quot;&gt; 
   &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-asciidoc&quot; data-lang=&quot;asciidoc&quot;&gt;See gh:view[repository=&apos;asciidoctor/asciidoctor.org&apos;, branch=&apos;master&apos;, path=&quot;news/debuter-avec-asciidoctor.adoc&quot;, link-text=&apos;this article in french&apos;] on GitHub.&lt;/code&gt;&lt;/pre&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect2&quot;&gt; 
 &lt;h3 id=&quot;jbake_blog&quot;&gt;JBake blog&lt;/h3&gt; 
 &lt;div class=&quot;paragraph&quot;&gt; 
  &lt;p&gt;If you have a blog powered by JBake (like this one), you can add the code for the link creation in your templates. This way JBake generates the desired link on each page. I implemented it with some Groovy code included in the template. More details can be found on the JBake-user mailing list: &lt;a href=&quot;https://groups.google.com/forum/#!topic/jbake-user/kcFpxlCEHOg&quot;&gt;Create a link &quot;see blog post source on GitHub&quot;&lt;/a&gt;.&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Use pull requests to improve documentation</title>
      <link>https://jmini.github.io/blog/2016/2016-03-02_pr_improve_documentation.html</link>
      <pubDate>Wed, 2 Mar 2016 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2016/2016-03-02_pr_improve_documentation.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Last November, I have presented a short introduction on Asciidoctor: &lt;em&gt;Writing documentation with Asciidoctor&lt;/em&gt; (&lt;a href=&quot;https://www.eclipsecon.org/europe2015/sites/default/files/slides/2015-11-03_Writing_documentation_with_Asciidoctor.pdf&quot;&gt;slides&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=MyhiD65qaUI&quot;&gt;video&lt;/a&gt;). As you can see in the video, several projects hosted by the Eclipse Fundation are already using Asciidoctor.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;At the end of the presentation I discuss the fact, that you should always indicate to your readers how they can improve the document. In the latest version of the Eclipse Scout documentation (for example the &lt;a href=&quot;http://eclipsescout.github.io/5.2/latest/article_helloworld/scout_helloworld/scout_helloworld.html&quot;&gt;Hello World Tutorial&lt;/a&gt;), I have included a link &quot;edit on GitHub&quot; at the bottom of each document:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-03-02_edit_on_gh_link.png&quot; alt=&quot;2016-03-02_edit_on_gh_link&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Because I believe in this approach, even this blog has a &quot;see source on GitHub&quot; link at the bottom of each article.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The Pull Request model (it is the same for Gerrit changes) is really powerful tool to improve documentation. Each user can propose changes to the document, in order to improve it for all other readers. This is the exact same mechanism that makes Wikipedia the best encyclopedia of the world. Dan Allen uses this picture to illustrate this idea:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-03-02_fork_and_fix.png&quot; alt=&quot;2016-03-02_fork_and_fix&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;In the Eclipse Scout project, we have decided to use GitHub for our documentation, because they provide a really great interface to edit AsciiDoc text directly online. Even without having to check out the document, users can edit the text and get some preview of their changes. With one or two additional clicks they submit a pull request. With this kind of tools, the complexity of having a Git repository is removed. Users get something similar as online wiki engines, with one important addition: each change can be reviewed and discussed before it gets integrated into the final document.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;By the way for closed source code, we are using a GitLab Backend on our company servers. We get a very similar user experience as with GitHub (see: &lt;a href=&quot;https://about.gitlab.com/2016/02/10/feature-highlight-create-files-and-directories-from-files-page/&quot;&gt;Create files and directories from the Files page&lt;/a&gt;). The AsciiDoc editor is also great there.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;A propos Asciidoctor, I will hold a Quickie Talk tomorrow (Thursday 03.03.2016) at Voxxed Day Zurich: &lt;a href=&quot;https://cfp-vdz.exteso.com/program/talk/WNL-9236/Writing_documentation_with_Asciidoctor.html&quot;&gt;Writing documentation with Asciidoctor&lt;/a&gt;. I hope I will meet other Asciidoctor users from Switzerland there.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Maven Repository and POM Files</title>
      <link>https://jmini.github.io/blog/2016/2016-02-21_maven_repo_and_pom_files.html</link>
      <pubDate>Sun, 21 Feb 2016 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2016/2016-02-21_maven_repo_and_pom_files.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;em&gt;This blog post is about Maven POM Files and publication of Eclipse jars in a maven repository. I use Mylyn-Wikitext as an example, because I know the project and I have worked on it. I think the same applies to other eclipse projects.&lt;/em&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Mylyn-Wikitext is an eclipse project that provides great tooling for lightweight markup language (Markdown, MediaWiki, Textile, Confluence, TracWiki, and others). The project is spitted into several modules: some of them (like the Editor) are coupled to the Eclipse runtime but others (like the parser) can be used in plain java applications.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;A simple Java Main Class (conversion from Markdown to HTML) is presented in &lt;a href=&quot;blog/2016/2016-02-21_maven_repo_and_pom_files.html#lst-java&quot;&gt;Listing 1&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;lst-java&quot; class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 1. Simple Java Main Class using Mylyn Wikitext
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;import java.io.StringWriter;
import org.eclipse.mylyn.wikitext.core.parser.MarkupParser;
import org.eclipse.mylyn.wikitext.core.parser.builder.HtmlDocumentBuilder;
import org.eclipse.mylyn.wikitext.core.parser.markup.MarkupLanguage;
import org.eclipse.mylyn.wikitext.markdown.core.MarkdownLanguage;

public class MarkdownHelloWorld {

  public static void main(String[] args) {
    StringBuilder sb = new StringBuilder();
    sb.append(&quot;# Heading 1\n&quot;);
    sb.append(&quot;\n&quot;);
    sb.append(&quot;Hello World!\n&quot;);
    sb.append(&quot;\n&quot;);
    sb.append(&quot;* Lorem\n&quot;);
    sb.append(&quot;* Ipsum\n&quot;);
    sb.append(&quot;\n&quot;);
    sb.append(&quot;This is **Markdown**  language.\n&quot;);
    String text = sb.toString();

    MarkupLanguage markupLanguage = new MarkdownLanguage();

    StringWriter writer = new StringWriter();
    HtmlDocumentBuilder builder = new HtmlDocumentBuilder(writer);
    builder.setEmitAsDocument(false);
    MarkupParser parser = new MarkupParser(markupLanguage, builder);
    parser.parse(text);
    System.out.println(writer.toString());
  }
}&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;To build the code presented in &lt;a href=&quot;blog/2016/2016-02-21_maven_repo_and_pom_files.html#lst-java&quot;&gt;Listing 1&lt;/a&gt;, you can use Maven with the &lt;code&gt;pom.xml&lt;/code&gt; File presented in &lt;a href=&quot;blog/2016/2016-02-21_maven_repo_and_pom_files.html#lst-pom_eclipse&quot;&gt;Listing 2&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;lst-pom_eclipse&quot; class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 2. POM File using a SNAPSHOT version from the Eclipse Maven repository
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&amp;gt;
  &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
  &amp;lt;groupId&amp;gt;com.company.example&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;helloworld-markdown&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;0.0.1-SNAPSHOT&amp;lt;/version&amp;gt;

  &amp;lt;dependencies&amp;gt;
    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;org.eclipse.mylyn.docs&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;org.eclipse.mylyn.wikitext.markdown.core&amp;lt;/artifactId&amp;gt;
      &amp;lt;version&amp;gt;2.6.0-SNAPSHOT&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;org.eclipse.mylyn.docs&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;org.eclipse.mylyn.wikitext.core&amp;lt;/artifactId&amp;gt;
      &amp;lt;version&amp;gt;2.6.0-SNAPSHOT&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;com.google.guava&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;guava&amp;lt;/artifactId&amp;gt;
      &amp;lt;version&amp;gt;[15.0.0,)&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
  &amp;lt;/dependencies&amp;gt;

  &amp;lt;repositories&amp;gt;
    &amp;lt;repository&amp;gt;
      &amp;lt;id&amp;gt;eclipse.mylyn&amp;lt;/id&amp;gt;
      &amp;lt;url&amp;gt;https://repo.eclipse.org/content/repositories/mylyn-snapshots/&amp;lt;/url&amp;gt;
    &amp;lt;/repository&amp;gt;
  &amp;lt;/repositories&amp;gt;

&amp;lt;/project&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;This works and it is great.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Last year I have developed a simple maven plugin that generate the Eclipse Info Center XML file (e.g. &lt;code&gt;toc.xml&lt;/code&gt;) for existing HTML pages. Of course it uses Mylyn Wikitext. In order to be able to publish a release of my plugin, I needed a maven repository containing a released version of Mylyn Wikitext and not a snapshot version.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I have used the &lt;a href=&quot;https://www.eclipse.org/b3/&quot;&gt;Eclipse B3&lt;/a&gt; tool to republish the Mylyn Wikitext jars coming from the Mars P2 Update Site to a maven repository hosted on Bintray. I my opinion this was a workaround until Bug 421551 is solved (see &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=421551&quot;&gt;Bug 421551: publish current stable release to a Maven repository&lt;/a&gt;). The B3 XML file is &lt;a href=&quot;https://github.com/jmini/mylyn-wikitext-repository&quot;&gt;published on GitHub&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Last week I discovered something interesting. With my maven repository, the POM file to build the simple Hello World from &lt;a href=&quot;blog/2016/2016-02-21_maven_repo_and_pom_files.html#lst-java&quot;&gt;Listing 1&lt;/a&gt; is much simpler and is presented in &lt;a href=&quot;blog/2016/2016-02-21_maven_repo_and_pom_files.html#lst-pom_bintray&quot;&gt;Listing 3&lt;/a&gt;.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&quot;lst-pom_bintray&quot; class=&quot;listingblock&quot;&gt; 
 &lt;div class=&quot;title&quot;&gt;
  Listing 3. POM File using a released version from my Bintray Maven repository
 &lt;/div&gt; 
 &lt;div class=&quot;content&quot;&gt; 
  &lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&amp;gt;
  &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
  &amp;lt;groupId&amp;gt;com.company.example&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;helloworld-markdown&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;0.0.1-SNAPSHOT&amp;lt;/version&amp;gt;

  &amp;lt;dependencies&amp;gt;
    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;org.eclipse.mylyn.docs&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;org.eclipse.mylyn.wikitext.markdown.core&amp;lt;/artifactId&amp;gt;
      &amp;lt;version&amp;gt;2.6.0.v20150901-2143&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
  &amp;lt;/dependencies&amp;gt;

  &amp;lt;repositories&amp;gt;
    &amp;lt;repository&amp;gt;
      &amp;lt;id&amp;gt;bintray.jmini.maven&amp;lt;/id&amp;gt;
      &amp;lt;url&amp;gt;http://dl.bintray.com/jmini/maven/&amp;lt;/url&amp;gt;
    &amp;lt;/repository&amp;gt;
  &amp;lt;/repositories&amp;gt;

&amp;lt;/project&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;The reason is simple. The pom files are not the same:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;The &lt;a href=&quot;https://repo.eclipse.org/content/repositories/mylyn-snapshots/org/eclipse/mylyn/docs/org.eclipse.mylyn.wikitext.markdown.core/2.6.0-SNAPSHOT/org.eclipse.mylyn.wikitext.markdown.core-2.6.0-20151008.192527-170.pom&quot;&gt;pom file&lt;/a&gt; describing &lt;code&gt;org.eclipse.mylyn.docs:org.eclipse.mylyn.wikitext.markdown.core:2.6.0-SNAPSHOT&lt;/code&gt; in the Eclipse Maven Repo is the pom uploaded by the maven-tycho build (packaging is &lt;code&gt;eclipse-plugin&lt;/code&gt;, there is no &lt;code&gt;&amp;lt;dependencies&amp;gt;&lt;/code&gt; section).&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;The &lt;a href=&quot;http://dl.bintray.com/jmini/maven/org/eclipse/mylyn/docs/org.eclipse.mylyn.wikitext.markdown.core/2.6.0.v20150901-2143/:org.eclipse.mylyn.wikitext.markdown.core-2.6.0.v20150901-2143.pom&quot;&gt;pom file&lt;/a&gt; describing &lt;code&gt;org.eclipse.mylyn.docs:org.eclipse.mylyn.wikitext.markdown.core:2.6.0.v20150901-2143&lt;/code&gt; in my Maven repository is generated by the Eclipse B3 tool (default packaging, has a &lt;code&gt;&amp;lt;dependencies&amp;gt;&lt;/code&gt; section)&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Eclipse B3 uses the Installable Unit of the P2 update site as input. The POM file is not present and has to be generated. The big difference is the dependencies section. My guess is that they have been derived by B3 from the P2 Metadata. The resulting POM is much user friendly for the developers that want to consume the library from the maven repository.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I am not a maven expert. Did I miss something?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I see more and more projects pushing their library to maven central. This is really nice. Tom Schindl has explained in a &lt;a href=&quot;http://tomsondev.bestsolution.at/2015/09/04/efxclipse-2-1-0-released/&quot;&gt;Blog Post&lt;/a&gt; that he was manually (re)publishing some components of the Eclipse Platform to Maven Central (&lt;code&gt;com.ibm.icu.base&lt;/code&gt;, &lt;code&gt;org.eclipse.e4.core.di.annotations&lt;/code&gt;, &lt;code&gt;org.eclipse.equinox.common&lt;/code&gt;, &lt;code&gt;org.eclipse.jdt.annotation&lt;/code&gt;, &lt;code&gt;org.eclipse.text&lt;/code&gt; &amp;#x2026;&amp;#x200b;). My feeling is that we have with Eclipse B3 a great piece of technology that can be used to (re)publish some of the content of the simultaneous release train on maven central. If there is enough interest, a maven job using Eclipse B3 could be prepared to push a fixed list of libraries on a maven repo (the eclipse one or even better maven central).&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Terminate and Relaunch in Eclipse IDE</title>
      <link>https://jmini.github.io/blog/2016/2016-02-06_terminate_and_relaunch.html</link>
      <pubDate>Fri, 12 Feb 2016 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2016/2016-02-06_terminate_and_relaunch.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Are you using the &quot;Terminate and Relaunch&quot; context menu in the Debug view?&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-02-12_debug_view.png&quot; alt=&quot;2016-02-12_debug_view&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Last year &lt;a href=&quot;https://twitter.com/martinlippert&quot;&gt;Martin Lippert&lt;/a&gt; did a demo of the &quot;Spring Tool Suite&quot; at the Eclipse Demo Camp in Zurich. He presented a great addition to the Eclipse Toolbar: the possibility to terminate and relaunch an application from anywhere.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-02-12_toolbar.png&quot; alt=&quot;2016-02-12_toolbar&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;We discussed after his presentation if this feature could be integrated in Eclipse IDE. I think it would be great and I imagine I would use it every day (now I am switching to the Debug perspective to do it). I have opened &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=487554&quot;&gt;Bug 487554&lt;/a&gt; for that. Feel free to share your opinion there.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Bug 75981 is fixed!</title>
      <link>https://jmini.github.io/blog/2016/2016-02-06_bug-75981-is-fixed.html</link>
      <pubDate>Sat, 6 Feb 2016 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2016/2016-02-06_bug-75981-is-fixed.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Like many of my Eclipse stories, it starts during a coffee break.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;Have you seen the new TODO template I have configured for our project?&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;Yes. It is nice&amp;#x2026;&amp;#x200b;&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-02-06_todo-template-old.png&quot; alt=&quot;2016-02-06_todo-template-old&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;But I hate having to set the date manually.&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;I know but it is not possible with Eclipse.&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;&amp;#x2026;&amp;#x200b;&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;A quick search on Google pointed me to &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=75981&quot;&gt;Bug 75981&lt;/a&gt;. I was not the only one looking for a solution to this issue:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/q/1131712&quot;&gt;How to set the Eclipse date variable format?&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/q/32119571&quot;&gt;Templates in Eclipse&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;&lt;a href=&quot;https://twitter.com/Grummfy/status/12874338803&quot;&gt;Tweet by @Grummfy&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;&lt;a href=&quot;https://twitter.com/Sigasi/status/381436597579038720&quot;&gt;Tweet by @Sigasi&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;By analyzing the Bugzilla history I have noticed that already 2 contributors have started to work on this (a long time ago) and the feedback to the latest patch never got any answers. I reworked the last proposal&amp;#x2026;&amp;#x200b; and&amp;#x2026;&amp;#x200b;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I am happy tell you that you can now do the following:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-02-06_templates-preferences.png&quot; alt=&quot;2016-02-06_templates-preferences&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Short description of the possibilities:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;As before you can use the date variable with no argument. Example: &lt;code&gt;${date}&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;You can use the variable with additional arguments. In this case you will need to name the variable (since you are not reusing the date somewhere else, the name of the variable doesn&amp;#x2019;t matter). Example: &lt;code&gt;${mydate:date}&lt;/code&gt;&lt;/p&gt; 
   &lt;div class=&quot;ulist&quot;&gt; 
    &lt;ul&gt; 
     &lt;li&gt; &lt;p&gt;The first parameter is the date format. Example: &lt;code&gt;${d:date(&apos;yyyy-MM-dd&apos;)}&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
     &lt;li&gt; &lt;p&gt;The second parameter is the locale. Example: &lt;code&gt;${maDate:date(&apos;EEEE dd MMMM yyyy HH:mm:ss Z&apos;, &apos;fr&apos;)}&lt;/code&gt;&lt;/p&gt; &lt;/li&gt; 
    &lt;/ul&gt; 
   &lt;/div&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Back to our use case, it now works as expected:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-02-06_todo-template-new.png&quot; alt=&quot;2016-02-06_todo-template-new&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Do not hesitate to try the feature and to report any issue you can find. The fix is implemented with the M5 milestone release of Eclipse Neon. You can download this version now here:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;a href=&quot;http://www.eclipse.org/downloads/index-developer.php&quot; class=&quot;bare&quot;&gt;http://www.eclipse.org/downloads/index-developer.php&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;This experiment was also a great opportunity for me to measure how the development process at Eclipse has been improved:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;With Eclipse Oomph (a.k.a Eclipse Installer) it is possible setup the Workspace to work on &quot;Platform Text&quot; very quickly&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;With Gerrit it is much easier for me (a simple contributor) to work with the commiters of the project (propose a patch, discuss each line, push a new version, rebase on top of HEAD&amp;#x2026;&amp;#x200b;)&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;With the Maven Build, the build is reproducible (I never tried to build the platform with the old PDE Build, but I believe that this was not possible for somebody like me)&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Where I spend most of the time:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;Analysis of the proposed patches and existing feedbacks in Bugzilla&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;Figure out how I could add some unit tests (for the existing behaviour and for the new use cases).&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;This was a great experience for me and I am really happy to have contributed this fix.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>A Desktop Wallpaper inspired by the Eclipse Logo</title>
      <link>https://jmini.github.io/blog/2016/2016-01-03-desktop-wallpaper-eclipse.html</link>
      <pubDate>Sun, 3 Jan 2016 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2016/2016-01-03-desktop-wallpaper-eclipse.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Few months after the &lt;a href=&quot;https://ianskerrett.wordpress.com/2014/02/13/introducing-the-updated-eclipse-logo/&quot;&gt;release of the new Eclipse Logo&lt;/a&gt;, I created this wallpaper for my Desktop:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2016/2016-01-03-desktop-screenshot.png&quot; alt=&quot;2016-01-03-desktop-screenshot&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I finally took the time to share it with the eclipse community.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;It was created by transforming this &lt;a href=&quot;https://www.flickr.com/photos/sancho_panza/54940367/&quot;&gt;Flickr photo by Abel Pardo Lopez&lt;/a&gt;. Like the original file, it is distributed under a Creative Commons Attribution 2.0 Generic License. You can download it from my bintray repository: &lt;a href=&quot;https://bintray.com/artifact/download/jmini/generic/EcDeWa.zip&quot;&gt;EcDeWa.zip&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Migration to JBake</title>
      <link>https://jmini.github.io/blog/2015/2015-12-27-jbake-migration.html</link>
      <pubDate>Sun, 27 Dec 2015 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2015/2015-12-27-jbake-migration.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I have changed the technology stack for this blog.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;This blog was hosted and built on GitHub pages (key technologies: Jekyll and Markdown).&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I have moved to:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;Blog posts written in AsciiDoc&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;JBake (which uses Asciidoctor)&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;Maven for the build&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;GitHub pages to host the output&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;If you are interested by this setup, have a look at this example project: &lt;a href=&quot;https://github.com/jmini/jbake-sample&quot;&gt;jbake-sample&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;My motivations are:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;Now that I am using Asciidoctor a lot, I really prefer writing my blog posts in the AsciiDoc format.&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;I like to be able to work offline (my use case is &quot;working in the train&quot;). With this setup I can preview the output on my machine before I push the commit to GitHub.&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;RSS/Atom feed is requested for the &lt;a href=&quot;http://planet.eclipse.org/planet/&quot;&gt;Eclipse Planet&lt;/a&gt; (I cannot use &lt;a href=&quot;http://hubpress.io/&quot;&gt;HubPress&lt;/a&gt; for this reason).&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;I still use GitHub to host the sources (because I believe in the pull request model) and to host the final result (hosting on GitHub.io is great).&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Next steps:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;Continuous integration with Travis CI&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;Change/improve the Blog theme&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Backing the next version of JUnit</title>
      <link>https://jmini.github.io/blog/2015/2015-08-17-backing-junit-next-version.html</link>
      <pubDate>Mon, 17 Aug 2015 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">blog/2015/2015-08-17-backing-junit-next-version.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Some developers have started a &lt;a href=&quot;https://www.indiegogo.com/projects/junit-lambda&quot;&gt;crowdfunding campaign&lt;/a&gt; to trigger the development of the next version of JUnit.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;a href=&quot;https://www.indiegogo.com/projects/junit-lambda&quot;&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2015/2015-08-17_junit.png&quot; alt=&quot;JUnit Lambda Logo&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Read more:&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;ulist&quot;&gt; 
 &lt;ul&gt; 
  &lt;li&gt; &lt;p&gt;On Voxxed: &lt;a href=&quot;https://www.voxxed.com/blog/2015/08/junit-lambda-crowdfunding-to-secure-the-future-of-testing-on-the-jvm/&quot;&gt;JUnit Lambda: The Future of Testing on the JVM Gets Crowdfunded&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
  &lt;li&gt; &lt;p&gt;On JAXenter: &lt;a href=&quot;https://jaxenter.com/crowdfunding-for-junit-lambda-is-underway-119546.html&quot;&gt;Crowdfunding for JUnit Lambda is underway&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;Because I believe the JUnit library needs to evolve, I have participated in the fundraising campaign.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>EclipseCon participation and return on investment</title>
      <link>https://jmini.github.io/blog/2014/2014-11-10-eclipse-con-participation-roi.html</link>
      <pubDate>Mon, 10 Nov 2014 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2014/2014-11-10-eclipse-con-participation-roi.html</guid>
      <description>
      &lt;div id=&quot;preamble&quot;&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;2 weeks ago, I had the chance to participate to the &lt;a href=&quot;http://www.eclipsecon.org/europe2014/&quot;&gt;EclipseCon Europe 2014&lt;/a&gt; and enjoyed it. On the way back, I was asking myself why I found it so great.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Of course, like in every conference, you have a lot of talks proposed on parallel tracks. You can pick the topics that are interesting for you and make your own program. Talks are a good way to discover a new trend, a new feature, a new tool&amp;#x2026;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;The keynotes are also great. For me it is always a great source of inspiration. They are a way to discover new ideas or new approach. Sometime there is nothing new in the talk but the presentation and or the speaker make the difference. A keynote is good if I can think of the message days or months later.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;I have tried to check is the investment (time, money - for you and / or your company) was justified or not. In my opinion it is all about what you have learned during those days. New tools or trends are important, but solving the real problems you have in your project is what will make a difference.&lt;/p&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect1&quot;&gt; 
 &lt;h2 id=&quot;my_experiment&quot;&gt;My experiment&lt;/h2&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;This summer I have started to evaluate the &lt;a href=&quot;http://www.eclipse.org/orion/&quot;&gt;web-IDE Orion&lt;/a&gt; to contribute something in the &lt;a href=&quot;http://www.eclipse.org/scout/&quot;&gt;Eclipse Scout&lt;/a&gt; git &lt;a href=&quot;http://git.eclipse.org/c/scout/org.eclipse.scout.rt.git/&quot;&gt;repository&lt;/a&gt; using &lt;a href=&quot;http://git.eclipse.org/r/&quot;&gt;gerrit&lt;/a&gt;. I wasn&amp;#x2019;t very successful (see this forum thread: &lt;a href=&quot;http://www.eclipse.org/forums/index.php/mv/msg/790507/1396617/#msg_1396617&quot;&gt;push a commit to gerrit&lt;/a&gt;). I decided to stop the experiment and not to invest much time in the evaluation. I never worked on this task again.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;On Wednesday, when I was at the EclipseCon, it hit me: one or more attendants of the EclipseCon had probably the information I needed in order to push my commit to Gerrit. I started to ask around (IBM booth, staff of the eclipse foundation) and everybody told me I should speak to John Arthorne. I needed to find him and I started to ask around. To maximize my chances, I started to misuse the monitor at the eclipse scout booth during the evening (Club ECE).&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2014/2014-11-10_slide1.png&quot; alt=&quot;Slide 1&quot; width=&quot;300&quot; height=&quot;225&quot;&gt;&lt;/span&gt; &lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2014/2014-11-10_slide2.png&quot; alt=&quot;Slide 2&quot; width=&quot;300&quot; height=&quot;225&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;We also used &lt;a href=&quot;http://twitter.com/EclipseScout/status/527546521144000513&quot;&gt;Twitter&lt;/a&gt; to broadcast the information.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;Suddenly &lt;a href=&quot;https://twitter.com/OPCoach_Eclipse&quot;&gt;Olivier Prouvost&lt;/a&gt; told me: &quot;Hey, John is right here&quot;. This is the EclipseCon magic!&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;John helped me with my problems and we managed to push my commit from Orion to Gerrit.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;div class=&quot;title&quot;&gt;
    Published on 
    &lt;a href=&quot;http://twitter.com/EclipseScout/status/527556988486828032&quot;&gt;twitter&lt;/a&gt;. Photo credit: Matthias Zimmermann
   &lt;/div&gt; 
   &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2014/2014-11-10_me_and_john.jpg&quot; alt=&quot;Photo on Twitter&quot; width=&quot;600&quot; height=&quot;450&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&quot;sect1&quot;&gt; 
 &lt;h2 id=&quot;helping_others&quot;&gt;Helping others&lt;/h2&gt; 
 &lt;div class=&quot;sectionbody&quot;&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;I think this mechanic is important and can justify for people to come to the EclipseCon. At the Eclipse Scout booth, we always welcome people coming with a laptop and their questions about our framework. We always manage to find the time to do some pair-programming at our booth. It is a kind of &quot;1:1 training&quot; for free.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;paragraph&quot;&gt; 
   &lt;p&gt;If you plan to attend to an EclipseCon, you should prepare a list of questions or of problems you want to solve during the conference. Finding people is not complicated: attend to a talk on the topic, identify the speaker and talk to him later. Visit a booth. Start to ask around. Everybody will be happy to help you. You will discover what being part of the Eclipse community means.&lt;/p&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Let be part of it</title>
      <link>https://jmini.github.io/blog/2014/2014-11-01-part-of-it.html</link>
      <pubDate>Sat, 1 Nov 2014 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">blog/2014/2014-11-01-part-of-it.html</guid>
      <description>
      &lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I really appreciate to read blogs from all over the world&amp;#x2026;&amp;#x200b; I think this is an incredible way to learn from others and to share knowledge.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I have opened this blog to be part of it. I see it as a way to share knowledge and to write about my ideas.&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;&lt;span class=&quot;image&quot;&gt;&lt;img src=&quot;blog/2014/2014-11-01_words.png&quot; alt=&quot;2014-11-01_words&quot;&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;div class=&quot;paragraph&quot;&gt; 
 &lt;p&gt;I have hosted this blog on &lt;a href=&quot;https://github.com/jmini/jmini.github.io&quot;&gt;GitHub&lt;/a&gt;. Maybe someone will send me some &lt;a href=&quot;https://github.com/jmini/jmini.github.io/pulls&quot;&gt;pull requests&lt;/a&gt; to improve the content (update broken links, fix typo, rephrase the text). Feel free to use the &lt;a href=&quot;https://github.com/jmini/jmini.github.io/issues&quot;&gt;issue tracker&lt;/a&gt; to suggest new topic or to start a discussion.&lt;/p&gt; 
&lt;/div&gt;
      </description>
    </item>
    

  </channel> 
</rss>
